Существует ли способ найти определенную запись среди целой строки?
Это - мой файл:
one two three four
two three four five
three four five six
four five six seven
five six seven eight
Как я ищу все строки, которые включают два?
awk '/(^| )two( |$)/' ...
(..)
группы там пытаются гарантировать, что мы только соответствуем "два". В передней стороне это или должно быть начало строки или пространства, и в конце это должно быть пространство или конец строки. Короче говоря, мы удостоверяемся, что поле равняется два.
Хм, по-видимому, можно также использовать граничные словом теги (который выглядит немного более изящным, но не является столь же портативным):
awk '/\<two\>' ...
Не уверенный, что Ваш определенный пример использования (я предполагаю, что это не числа), Вы могли бы быть точно также выключены с grep -E '\<two\>' ...
но awk
даст Вам немного больше гибкости, если необходимо сделать другой материал.
Для этой простой задачи можно также использовать 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