Печатать текст в блоке, который соответствует шаблону, используя awk/sed

Вы можете попробовать удалить -.mount

sudo rm /run/systemd/system/-.mount

, а затем перезагрузка systemd

sudo systemctl daemon-reload

1
06.11.2020, 12:18
3 ответа

попробуй:

awk -v RS= '/^ABC:CDA.*fgh:qwe$/{ print sep $0; sep=ORS }' infile
1
18.03.2021, 22:51

Чтобы иметь больший контроль над выходным форматом, я предлагаю Perl в режиме абзаца

perl -00nE 'say "$1" if /ABC:CDA(.*)fgh:qwe/s' example

Perl -00neозначает :для каждого абзаца

1
18.03.2021, 22:51

Протестировано в GNU awk.

awk '/^(axy:ABC_|ABC:CDA_)[[:lower:]]{2,6}$/ {check = ($1 == "axy:ABC_gf")} !check' file
ABC:CDA_sd
dfg:GFJ
dfg:jasdn
iop:yui
ghj:bhu
ghj:poi
fgh:qwe

ABC:CDA_ghg
dfg:GFJ
dfg:jasdn
iop:yui
ghj:bhu
ghj:poi
fgh:qwe

ABC:CDA_jsagdh
dfg:GFJ
dfg:jasdn
iop:yui
ghj:bhu
ghj:poi
fgh:qwe

Или только эти данные:


awk '/^(axy:ABC_|ABC:CDA_)[[:lower:]]{2,6}$/ {check = ($1 == "axy:ABC_gf")} check' file
axy:ABC_gf
dfg:GFJ
dfg:jasdn
iop:yui
ghj:bhu
ghj:poi
fgh:qwe
0
18.03.2021, 22:51

Теги

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