Найти все строки, содержащие строку -, суммировать и подсчитать их

это немного странно, и я не `не проводил глубоких исследований, но мне нужно было использовать

zip -r --include="server_*"...

включить файлы, начинающиеся с sth, чтобы это работало в настройке CI/CD

0
25.10.2021, 11:44
3 ответа

просто добавьте флаг -c, чтобы grep подсчитал его для вас.

Если слишком много нулевых результатов, отфильтровать с помощью awk

  grep -rnic 'type="abc_' * | awk -F: '$NF>0' 
0
25.10.2021, 11:52

Попробуйте подобное:

grep -rni 'type="abc_' * |sed -n "s/.*\(abc_[0-9]*\).*/\1/p"|uniq -c| sed  "s/\(.*\)\(abc.*\)/\2 found \1 times/"
0
25.10.2021, 12:16

Это использует find, чтобы получить список файлов, передает его в catи анализирует вывод с помощью awk:

.
find. -type f |
xargs -I xx cat "xx" | awk '/type="abc_/{
  for(i=1;i<=NF;i++){
    if($i~/type="abc_/){ d[$i]++ } } } 
  END{ for(i in d){ print i"\tfound",d[i],"times." } }'

type="abc_4  found 1 times.
type="abc_3  found 2 times.
type="abc_6  found 1 times.
type="abc_2  found 2 times.
type="abc_10 found 3 times.
type="abc_5  found 1 times.

Он использует find вместо простого cat *для большей гибкости при поиске.

xargs.. cat |..можно укоротить наfind. -type f -exec cat {} + | awk..

1
25.10.2021, 12:21

Теги

Похожие вопросы