поиск нескольких строк в столбце на выходе bash - PullRequest
0 голосов
/ 21 декабря 2018

Я хочу найти несколько строк в 4-м столбце, используя awk.выражение ex

ls -ltr | awk '$4 == /string1|string2/'

должно возвращать строки, которые содержат либо string1 | 2 в 4-м столбце, возвращаемом в выводе ls -ltr.

1 Ответ

0 голосов
/ 21 декабря 2018

если вы ищете точное совпадение, вам нужны якоря с обеих сторон

$ ... | awk '$4 ~ /^(string1|string2)$/'

или буквально

$ ... | awk '$4=="string1" || $4=="string2"'

, иначе вы также получите частичные совпадения.

однако, анализ ls вывода обычно не рекомендуется, и вы можете получить то же самое с find.

Для частичных совпадений (строка1 или строка2 отображается как подстрока $ 4), перейдитеВернемся к первому подходу, чтобы сделать его нечувствительным к регистру, оставив строчные и строчные2 строчными и

... | awk 'tolower($4) ~ /string1|string2/'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...