Подсчитать количество вхождений строки с переменной подстрокой в ​​файле в bash - PullRequest
0 голосов
/ 20 сентября 2018

Я хочу посчитать количество вхождений строки 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 s.

Любые предложения будут полезны!

Ответы [ 3 ]

0 голосов
/ 20 сентября 2018

Вы можете попробовать это:

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]|$) соответствует концу строки или чему-либо, кроме цифры

0 голосов
/ 20 сентября 2018

Попробуйте, может быть, это поможет

grep -w -c "Exiting with return code [012][0-9]\|Exiting with return code [0-9]" dump.out
0 голосов
/ 20 сентября 2018

Для 0 <= $ var <= 29 </p>

grep -c 'Exiting with return code \([0-9]\|[12][0-9]\)'

Для 0 <$ var <29 </p>

grep -c 'Exiting with return code \([1-9]\|1[0-9]\|2[0-8]\)'

Обратите внимание, что он может совпадать с 134, поскольку начинается с 1, поэтому вам может потребоваться указать следующий символ (или $, если его нет).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...