我想计算文本文件Exiting with return code $var
中dump.out
处字符串0<$var<29
出现的次数。
即我只想考虑其中$var
是0
和29
之间的任何值(包括两个限制)的字符串。
我要这样检查:
if [ $(grep -c "Exiting with return code 0" dump.out) -ne 5 ]; then
rc=1
exit 0
fi
但是这里仅考虑具有0
的字符串。
任何建议都会有所帮助!
答案 0 :(得分:0)
对于0 <= $ var <= 29
grep -c 'Exiting with return code \([0-9]\|[12][0-9]\)'
对于0 <$ var <29
grep -c 'Exiting with return code \([1-9]\|1[0-9]\|2[0-8]\)'
请注意,它可以匹配134,因为它以1
开头,因此您可能需要指定以下字符(如果没有,请指定$
)。
答案 1 :(得分:0)
您可以尝试以下方法:
grep -c -E 'Exiting with return code [12]?[0-9]([^0-9]|$)' dump.out
-E
让grep使用扩展的正则表达式(ERE)
[12]?[0-9]
匹配数字0,1,...,29
([^0-9]|$)
匹配行尾或除数字外的其他任何字符
答案 2 :(得分:0)
尝试此操作可能会有所帮助
grep -w -c "Exiting with return code [012][0-9]\|Exiting with return code [0-9]" dump.out