我是shell脚本的初学者,任何人都可以帮我下面, 我想awk从下面的上下文的数值:“Total Number of记录:35" ,它也可以记录后有空格,如:‘记录总数:35’,我想awk从以下上下文中的数值:“总记录数:35”
我尝试使用以下,但它不工作,如果上述情况下是有空间
TNR=$(awk -F ':' '/^Total Number of Records/{print $NF}' f1.txt)
在此先感谢。
我是shell脚本的初学者,任何人都可以帮我下面, 我想awk从下面的上下文的数值:“Total Number of记录:35" ,它也可以记录后有空格,如:‘记录总数:35’,我想awk从以下上下文中的数值:“总记录数:35”
我尝试使用以下,但它不工作,如果上述情况下是有空间
TNR=$(awk -F ':' '/^Total Number of Records/{print $NF}' f1.txt)
在此先感谢。
为您的样品输入,这个简单的awk
程序应该足够:
$ awk -F ': *' '{print $2}' file
它依赖于输入字段分隔符扩展正则表达式(POSIX-compatible):(后跟零个或多个空格结肠): *
,简单地在这样的分割之后打印第二个字段。
解决方案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')