У меня есть очень длинный файл со строками с несколькими столбцами чисел - более 3 столбцов на каждую строку, за исключением одной строки. Это очень большой файл, и я пытаюсь найти строку, которая имеет только 13 . Поскольку это большой файл, когда я выполняю grep 13 , я получаю много строк с числами, в которых где-то 13 . Как я могу использовать grep таким образом, чтобы возвращались только строки, содержащие 13 с wc=1 ?

1 ответ1

1

grep(1) имеет возможность поиска только целых строк, которые соответствуют заданному регулярному выражению:

 -x, --line-regexp
         Only input lines selected against an entire fixed string or
         regular expression are considered to be matching lines.

Предполагая, что строки, которые вы хотите сопоставить, не содержат пробелов, команда:

grep -x 13

обеспечит вывод, который вы ищете.

OTOH, если строки, которые вы хотите сопоставить, содержат начальные и / или конечные пробелы, вам нужен более сложный шаблон:

grep -x '[[:blank:]]*13[[:blank:]]*'

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .