所以,我有一个名为“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/