Как мне найти каталог файлов данных и распечатать сколько раз определенное слово появляется в каждом файле?

Además de la respuesta relacionada con las matrices asociativas propuesta por @Kusalananda, también se me ocurrió esto:

ENDPOINT=URL_${ENVIRONMENT^^}
MY_URL="${!ENDPOINT}"
1
07.02.2016, 19:27
3 ответа

Перебрать файлы:

for file in "$1"/* ; do
    if [[ -f "$file ]] ; then
        printf %s: "$file"
        grep -o Author "$file" | wc -w
    fi
done

Вы также можете использовать Perl:

perl -lne 'BEGIN { $c = 0 }
           $c++ while /Author/g;
           if (eof) { print "$ARGV: $c"; $c=0 }
          ' "$1"/*
0
29.04.2021, 00:18

Для этого можно использовать grep. Второй grep предназначен для фильтрации файлов, не имеющих совпадений.

grep -rc 'Author' ${1} | grep -v ':0$'
1
29.04.2021, 00:18

С параллельным GNU:

parallel --tag 'grep -oh Author {} | wc -w' ::: *.dat

Если есть подкаталоги:

find . -name '*.dat' | parallel --tag 'grep -oh Author {} | wc -w'
0
29.04.2021, 00:18

Теги

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