grep НЕ обрабатывает точную строку

на Debian, все методы для начала и остановки сетевых подключений запускаются скрипты в / etc / ettem . Это задокументировано в странице интерфейсов (5) . Он является частью пакета ifuppdown, но скрипты выполняются, даже если интерфейс выводится вверх или вниз по каркасам, таким как NetworkManager, а не на IFUP и IFDown команды.

Так что поставьте свой скрипт в /etc/network/if-up.d . Убедитесь, что он включает в себя проверку, который вы нужны интерфейс, - в частности, вы не хотите, чтобы ваш скрипт был выполнен, как только интерфейс петля увеличивается. Вы можете проверить имя интерфейса с переменной средой , либо непосредственно, либо путем вызывающих команд, таких как IFCONFIG , или IP Чтобы проверить его характеристики (IP-адрес, шлюз, ...). В качестве альтернативы вы можете проверить что-то независимо от интерфейса, например, Проверьте, что какой-то хост достижится.

Обратите внимание, что скрипты выполняются в лексикографическом порядке. Если ваш скрипт требует некоторых других функций (например, DNS), убедитесь, что он наступает позже, чем скрипт, который устанавливает эту функциональность.

-1
30.05.2015, 12:05
4 ответа

проблема состоит в том, что 9/1 будет также соответствовать 9/12. Так, используйте это:

grep -Fv 'IF 9/1 ' file.txt

кроме того, не используйте x опция. Это выбирает только те соответствия, которые точно соответствуют целой строке.

0
28.01.2020, 05:09

причина-x grep для соответствия целой строке. Вам нужно:

grep -Fv 'IF 9/1[^[:alnum:]_]' file
2
28.01.2020, 05:09

Да, вы сказали grep, но часто awk решения выглядят менее загадочными и более просты, если булевы условия включены:

awk '!($2=="IF" && $3=="9/1")' file.txt
0
28.01.2020, 05:09

Вы можете использовать grep PCRE (Perl-совместимые регулярные выражения):

$ grep -P 'IF 9/1(?! )' file.txt 
3 IF 9/12 Larry 
4 IF 9/15 Page

(?!) - шаблон отрицательного просмотра вперед нулевой ширины, который гарантирует отсутствие пробелов после IF 9 / 1 т. Е. За ним следует хотя бы один символ, кроме пробела. Это даст вам желаемый результат.

0
28.01.2020, 05:09

Теги

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