计算bash文件中带有可变子字符串的字符串出现的次数

时间:2018-09-20 12:14:09

标签: string bash grep

我想计算文本文件Exiting with return code $vardump.out处字符串0<$var<29出现的次数。

即我只想考虑其中$var029之间的任何值(包括两个限制)的字符串。

我要这样检查:

if [ $(grep -c "Exiting with return code 0" dump.out) -ne 5 ]; then
  rc=1
  exit 0
fi

但是这里仅考虑具有0的字符串。

任何建议都会有所帮助!

3 个答案:

答案 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