Скажем, у меня есть файл, который имеет некоторых ls -l
вывод:
waaa- foo.pdf
-bbb- foobar.pdf
-ccc- foobar
waaa- foobar
Я хотел бы получить просто первую строку
waaa -foo.pdf
как конечный результат, и я пробую:
egrep -E "^w" .file | egrep -E "*.pdf"
Там какой-либо путь состоит в том, чтобы объединить эти два поиска?
Необходимо записать это как:
egrep "^w.*\.pdf$" filename
w
сопровождаемый любым символом и законченный к .pdf
.для логического "или" можно использовать -e
переключатель:
egrep -e pattern1 -e pattern2
средства все строки с pattern1
или pattern2
.
или как @steeldriver предложенный, используйте расширенный regex "или":
egrep "(pattern1|pattern2)"
и поскольку Вы знаете для расширенных регулярных выражений, необходимо использовать egrep
и нет grep
, например:
egrep '(bbb|ccc)' # works fine for your file
grep '(bbb|ccc)' # doens't have any result
Для "и" необходимо передать его по каналу другому egrep
:
grep pattern1 | grep pattern2
средства все строки с обоими pattern1
и pattern2
.
или используйте другого инструменты как awk
:
awk '/pattern1/ && /pattern2/` filename