2017-10-12 39 views
2

我是shell脚本的初学者,任何人都可以帮我下面, 我想awk从下面的上下文的数值:“Total Number of记录:35" ,它也可以记录后有空格,如:‘记录总数:35’,我想awk从以下上下文中的数值:“总记录数:35”

我尝试使用以下,但它不工作,如果上述情况下是有空间

TNR=$(awk -F ':' '/^Total Number of Records/{print $NF}' f1.txt) 

在此先感谢。

回答

1

为您的样品输入,这个简单的awk程序应该足够:

$ awk -F ': *' '{print $2}' file 

它依赖于输入字段分隔符扩展正则表达式(POSIX-compatible):(后跟零个或多个空格结肠): *,简单地在这样的分割之后打印第二个字段。

0

解决方案1:如果你有一个INPUT_FILE,你想从那里得到的值,然后以下可能会帮助你一样。

awk '{sub(/.*:/,"");sub(/\".*/,"")} 1' Input_file 

将上述命令的输出保存到变量中使用以下内容。

TNR=$(awk '{sub(/.*:/,"");sub(/\".*/,"")} 1' Input_file) 

解决第二:如果你从哪里你想那么下面可以帮助你在这个相同数值的变量。

var="Total Number of Records:35\"," 
echo "$var" | awk '{sub(/.*:/,"");sub(/\".*/,"")} 1' 

要保存上述命令的输出到一个变量的使用下面的命令:

TNR=$(echo "$var" | awk '{sub(/.*:/,"");sub(/\".*/,"")} 1')