Как отклонить строки, начинающиеся с некоторого текста в awk? - PullRequest
0 голосов
/ 28 апреля 2020

Я хочу принять строки, которые не начинаются с ":: 1" в файле / etc / hosts, с использованием приведенного ниже сценария awk:

cat /etc/hosts | awk '/~(^::1)/{print}' >> test.txt

Но приведенный выше код вообще не принимает строки.

Pls. help.

ПРИМЕЧАНИЕ. Приведенный выше код cat - это просто пример выходного потока. Я хочу, чтобы код awk принимался только в том случае, если исходящий поток слева от pipe | имеет указанный начальный текст, в противном случае он должен полностью отклонить выходной поток.

1 Ответ

1 голос
/ 28 апреля 2020

Соответствующий синтаксис:

 awk '!/^::1/{print $1}' /etc/hosts

с каналом:

 cat /etc/hosts | awk '!/^::1/{print $1}' 

Обратите внимание, что /etc/hosts (или любой другой исходный поток) также может содержать комментарии (начиная с #), которую вы можете игнорировать:

cat /etc/hosts | awk '!/^::1/ && !/^#/{print $1}'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...