строки grep, содержащие «CC», но не более C

Решено:

Оказывается, мне нужно было включить службу systemd-networkd-wait-online.service. Теперь обе попытки, которые я пробовал (/etc/fstab и mnt -media.mount ), работают как положено.

Для тех, кто еще борется с этим, в зависимости от того, используете ли вы systemd-networkdили NetworkManager, вам необходимо убедиться, что systemd-networkd-wait-online.serviceили NetworkManager-wait-online.serviceвключены в вашей системе. В противном случае ваша система не будет ждать, пока сеть заработает, даже если это явно требуется вашим монтированиям.

Я наткнулся на этот ответ по этой ссылке:NFS/Устранение неполадок -Сеть недоступна .

-2
27.11.2020, 02:02
3 ответа

Использование режима PCRE GNU grep с perl -стилем обходными путями для соответствия CC, где ему не предшествует и не следуетC:

grep -P '(?<!C)CC(?!C)'

или имитация чего-то подобного в режиме ERE:

grep -E '(^|[^C])CC([^C]|$)'
0
18.03.2021, 22:46

Совпадение строк, начинающихся с CC, не имеющих других вхождений символа Cв строке:

grep '^CC[^C]*$' file

То же самое, не требуя CCбыть в начале строки:

grep '^[^C]*CC[^C]*$' file

И без учета общего количества Cсимволов в строке:

Совпадение строк, начинающихся с CC, но не с CCC(, например. CCACсоответствует, CCCAотбрасывается):

grep '^CC[^C]' file

Совпадение строк с максимальным и минимальным числом повторений 2 Cв любом месте:

grep -v 'CCC'| grep 'CC'
1
18.03.2021, 22:46

Чтобы найти строки, содержащие ровно символы из класса:

grep '^[^]*\([][^]*\)\{\}$'

конкретный случай здесь имеет ={C} и =2:

grep '^[^C]*\([C][^C]*\)\{2\}$'

и скобки могут быть удалены из одного класса символов -для окончательного ответа:

grep '^[^C]*\(C[^C]*\)\{2\}$'
0
18.03.2021, 22:46

Теги

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