Распечатайте линии между двумя шаблонами вместе с заголовком - PullRequest
0 голосов
/ 05 мая 2020

У меня есть файл, подобный этому ниже:

Name: DB1
========================================================
Primary :
f3
f6
f7
f9
f0
Secondary :
internal input
internal output
internal Loaded
internal output
internal Loaded

Name: DB2
========================================================
Primary :
s2
m5
m7
m8
m9 
Secondary :
External output
External Revoke
External Reuse
External input

Но мне нужен такой вывод, чтобы извлечь строки между Primary и Secondary вместе с именами:

Name: DB1
========================================================
f3
f6
f7
f9
f0

Name: DB2
========================================================
Primary :
s2
m5
m7
m8

Я пробовал это:

$ awk '/Primary :/{flag=1; next} /Undriven :/{flag=0} flag' file
f3
f6
f7
f9
f0
s2
m5
m7
m8
m9

Я не понимаю имен, может ли кто-нибудь помочь мне в этом.

Ответы [ 2 ]

0 голосов
/ 05 мая 2020

Если это не все, что вам нужно, отредактируйте свой вопрос, чтобы предоставить более представительный образец ввода / вывода, для которого это не работает:

$ awk -v RS= -F'\n' '{for (i=1;i<=8;i++) print $i; print ""}' file
Name: DB1
========================================================
Primary :
f3
f6
f7
f9
f0

Name: DB2
========================================================
Primary :
s2
m5
m7
m8
m9

или:

$ awk -v RS= -v FS='\n' '{print $1 ORS $2; for (i=4;i<=8;i++) print $i; print ""}' file
Name: DB1
========================================================
f3
f6
f7
f9
f0

Name: DB2
========================================================
s2
m5
m7
m8
m9
0 голосов
/ 05 мая 2020

Похоже, вы довольно близки, за исключением того, что (а) вы никогда явно не сопоставляете строку Name: и (б) вы сопоставляете слово «Undriven», которое не встречается в вашем образце data.

Я бы, вероятно, сделал что-то вроде этого:

awk '
/^Name:/
/^====/
/^Primary :/{flag=1; next}
/^Secondary :/{flag=0}
flag
' file

Что дает на выходе:

Name: DB1
========================================================
f3
f6
f7
f9
f0
Name: DB2
========================================================
s2
m5
m7
m8
m9
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...