Как извлечь из файла с двумя известными и неизвестными строками в Unix? - PullRequest
0 голосов
/ 18 февраля 2019

Я пытаюсь отобразить строки, содержащие две строки.Первая строка - «ulist», а вторая строка может иметь любой префикс, но должна заканчиваться строкой «path».Обрезать нужно только те строки, которые содержат обе строки.

Я пробовал использовать приведенное ниже условие grep-

agrep -w "ulist;path" // AND between both patterns as both are required in order to grep a line

Эта команда почти выдает все, что я хочу, но затемон не получает те строки, которые содержат «ulist» и «sipath» (оканчивающиеся на путь строки, но все еще не очищенные).Мне нужно выполнить grep для всех строк, которые содержат «ulist» и «* path» (перед path может быть что угодно).Но оба они необходимы (И между этими двумя шаблонами).

Кто-нибудь может предложить правильный шаблон регулярных выражений?

Ответы [ 2 ]

0 голосов
/ 18 февраля 2019
grep -w ".*ulist.*path$" myfile.txt

Заканчиваясь на $, вы гарантируете, что строка 'path' находится в конце строки.

0 голосов
/ 18 февраля 2019

, если первый должен предшествовать второму

$ grep '\bulist\b.*path\b' file

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...