所以,我有一个名为“dummy”的文件,其中包含以下字符串:
"There is 100% packet loss at node 1".
我还有一个小脚本,我想用它来获取这个文件的百分比。剧本如下。
result=`grep 'packet loss' dummy` |
awk '{ first=match($0,"[0-9]+%")
last=match($0," packet loss")
s=substr($0,first,last-first)
print s}'
echo $result
在这种情况下,我希望$result的值基本上是100%。但出于某种原因,它只是打印出一个空字符串。有人能帮我吗?
最佳答案
您需要在awk
命令结束后加上结束的倒勾,但最好使用$()
:
result=$( grep 'packet loss' dummy |
awk '{ first=match($0,"[0-9]+%")
last=match($0," packet loss")
s=substr($0,first,last-first)
print s}' )
echo $result
但你可以这样做:
result=$( grep 'packet loss' | grep -o "[0-9]\+%" )
关于bash - 使用bash shell脚本和awk提取子字符串,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2573009/