Как мне напечатать строки в файле, содержащие два регулярных выражения, где одно является подстрокой другого

Вам необходимо установить .target по умолчанию для загрузки systemd.

Вы можете сделать это с помощью:

systemctl set-default graphical.target

Это позволит использовать графический вход (с помощью диспетчера дисплея), а не консольный вход.

Подробнее об этом см. В systemctl (1) и systemd.special (7).

1
22.08.2017, 09:39
2 ответа

Grep для целых слов:

$ grep -w orange foo.csv | grep -w ora
ora,orange,apple
orange,apple,ora,banana

-wозначает, что совпадающий текст должен быть окружен несловными символами (символами слова являются буквы, цифры, подчеркивание).

1
27.01.2020, 23:24

С одинарнымegrep:

egrep 'ora\b.*orange|orange.*ora\b' file

Выход:

ora,orange,apple
orange,apple,ora,banana

Или с однимвыражением sed:

sed -n '/orange/{/ora\b/p}' file
ora,orange,apple
orange,apple,ora,banana

В обоих подходах\b(используется граница слов ).

2
27.01.2020, 23:24

Теги

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