Найдите слово с помощью AWK

Существует ли способ найти определенную запись среди целой строки?

Это - мой файл:

one two three four
two three four five
three four five six
four five six seven
five six seven eight

Как я ищу все строки, которые включают два?

3
задан 9 July 2014 в 21:59

2 ответа

awk '/(^| )two( |$)/' ...

(..) группы там пытаются гарантировать, что мы только соответствуем "два". В передней стороне это или должно быть начало строки или пространства, и в конце это должно быть пространство или конец строки. Короче говоря, мы удостоверяемся, что поле равняется два.

Хм, по-видимому, можно также использовать граничные словом теги (который выглядит немного более изящным, но не является столь же портативным):

awk '/\<two\>' ...

Не уверенный, что Ваш определенный пример использования (я предполагаю, что это не числа), Вы могли бы быть точно также выключены с grep -E '\<two\>' ... но awk даст Вам немного больше гибкости, если необходимо сделать другой материал.

5
ответ дан 1 December 2019 в 13:27

Для этой простой задачи можно также использовать grep:

grep  'two' /path/to/file

вывод:

one two three four
two three four five

Для получения "два", если это не в начале строки:

grep ' two ' /path/to/file ->one two three four

или с метасимволами для получения его только в начале строки:

grep '^two' /path/to/file ->two three four five

2
ответ дан 1 December 2019 в 13:27

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

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