如何从csh中的字符串中获取数值

时间:2013-03-01 19:31:44

标签: csh

我正在编写一个csh脚本,需要将字符串中的数值赋给变量

以下是字符串值的示例:" pkt_size = 78"

除了数字之外,字符串中的字符总是相同的。

我非常需要在" ="之后提取值。登录。

我可以使用什么Unix命令来执行此操作?

谢谢,

4 个答案:

答案 0 :(得分:3)

% set var = pkt_size=78
% set num = `echo $var | sed 's/.*=//'`
% echo $num
78

或者如果您使用tcsh(不是普通csh),前缀是固定字符串:

% set var = pkt_size=78
% set num = $var:s/pkt_size=//
% echo $num
78

Obligatory reference

答案 1 :(得分:0)

快速入侵......

$ NUMBER=`echo pkt_size=78 | sed -e 's/pkt_size=\(\d*\)/\1/'`

答案 2 :(得分:0)

根据C-shell Cookbook

  

C-shell没有字符串操作工具。相反,我们主要使用echo命令和awk实用程序。后者有自己的文本处理语言,您可以编写awk脚本来执行复杂的处理,通常来自文件。甚至还有专门用于awk的书籍,例如简洁的标题为sed& amp;由Dale Dougherty撰写的文章(O'Reilly& Associates,1990)。当然,详细描述远远超出了本手册的范围。

awk黑客会是这样的:

set var=`echo "$var" | awk -F= '{print $2}'`

答案 3 :(得分:0)

如果必须使用csh,则可以使用内置修饰符。

% set v=pkt_size=78
% echo $v:s/pkt_size=//
78

这可能是特定于tcsh。

但是使用bourne shell派生词(sh,ksh,bash)的确有很多理由。