Команда linux grep не возвращает точные результаты - PullRequest
0 голосов
/ 14 января 2019

Команда grep не возвращает точные результаты.

У меня есть текстовый файл с HTML-содержанием. Я хочу получить количество определенных слов с помощью команды grep. Команда grep не возвращает точные результаты. OS - Red Hat Enterprise Linux Server версии 6.6 (Сантьяго)

Ниже приведено содержимое входного файла test.txt. В этом файле есть два вхождения слова «Tomcat»

<html><title>Tomcat Server</title><body><font face="Verdana, Arial" size="-1"><p>Tomcat Server</p></body></html>

команда grep
cat test.txt|grep -c Tomcat
cat test.txt|grep -c "Tomcat"

Примечание: это тот же результат с кавычками или без них

Ожидаемый результат: count - 2
Фактический результат: количество - 1

1 Ответ

0 голосов
/ 14 января 2019

Обратите внимание на разницу между «точным» и «желаемым». Страница man grep говорит о флаге -c:

Подавить нормальный выход; вместо этого выведите количество подходящих строк для каждого входного файла. С помощью опции -v, --invert-match (см. Ниже) подсчитайте несовпадающие строки.

Итак, считается, что на одной строке было совпадение, и это то, что она говорит вам.

...