Нужна рука с командой grep word

Просто освоился с командной строкой Linux, но возникли проблемы с командами grep.

Я пытаюсь выяснить, сколько раз слово появляется в последних 1000 строках текстового файла.

У меня такое чувство, что мне нужно использовать grep и pipe, но я не могу понять это.

2
задан 18 March 2015 в 15:12

2 ответа

Если Вы не хотите считать количество случаев, но количество согласующих отрезков длинной линии, используйте ответ @heemayl. Однако, если Вы хотите считать каждое возникновение (так, количество word foo word как 2 хита, не один), можно сделать:

tail -1000 file | grep -o word | wc -l

tail команда печатает последние 1 000 строк, grep -o word поиски word и печатает каждый найденный случай (таким образом, это распечатает его дважды, если это будет соответствовать дважды), и wc -l количества количество возвращенных строк.

, С другой стороны, Вы могли использовать что-то как жемчуг, чтобы сделать подсчет:

tail -n 1000 file | perl -alne '$k+=grep{/word/} @F; END{print $k}'  

Наконец, обратите внимание, что это будет также считать вещи как wordsmith. Для соответствия, только если шаблон формирует все слово используйте grep с эти -w флаг:

tail -1000 file | grep -wo word | wc -l

или

tail -n 1000 file | perl -alne '$k+=grep{/\bword\b/} @F; END{print $k}'
5
ответ дан 18 March 2015 в 15:12

Вот общий шаблон:

tail -1000 file.txt | grep -c "word"

Это распечатает количество строк, которые содержат шаблон "слово" в последних 1 000 строк файла, названного file.txt. Здесь мы использовали tail -1000 для получения последних 1 000 строк файла и затем просто использовали grep -c для значения случаев шаблона в тех строках.

2
ответ дан 18 March 2015 в 15:12

Другие вопросы по тегам:

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