Sed, 4. zeile nach regexp ausgeben
Hallo Team,
Mein System ist Lubuntu 14.04 LTS
Ich benötige ein wenig sed - Hilfe.
Meine zu bearbeitende Datei
hat folgende Textblöcke:
...
M AAAA
M BBBB
M CCCC
M DDDD
N AAAA
N BBBB
N CCCC
N DDDD
...
... heißt dazwischen ist noch eine ganze Menge Text. Zeile M und N ( und weitere ) enthalten "AAAA", danach suche ich. Darauf soll die 4. Zeile dieser Blöcke , also M DDDD bzw. N DDDD aus gegeben werden.
Mein aktuelles Konstrukt:
sed -n '/[A-Z]* AAAA/,+4p gibt
M AAAA
M BBBB
M CCCC
M DDDD
N AAAA
N BBBB
N CCCC
N DDDD
aus. Was mache ich falsch ?
Danke für eure Hilfe.
mfG
rsadmchef.
Mein System ist Lubuntu 14.04 LTS
Ich benötige ein wenig sed - Hilfe.
Meine zu bearbeitende Datei
hat folgende Textblöcke:
...
M AAAA
M BBBB
M CCCC
M DDDD
N AAAA
N BBBB
N CCCC
N DDDD
...
... heißt dazwischen ist noch eine ganze Menge Text. Zeile M und N ( und weitere ) enthalten "AAAA", danach suche ich. Darauf soll die 4. Zeile dieser Blöcke , also M DDDD bzw. N DDDD aus gegeben werden.
Mein aktuelles Konstrukt:
sed -n '/[A-Z]* AAAA/,+4p gibt
M AAAA
M BBBB
M CCCC
M DDDD
N AAAA
N BBBB
N CCCC
N DDDD
aus. Was mache ich falsch ?
Danke für eure Hilfe.
mfG
rsadmchef.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 271729
Url: https://administrator.de/contentid/271729
Ausgedruckt am: 25.11.2024 um 06:11 Uhr
1 Kommentar
Moin,
mit awk kann ich helfen:
-edit
oder wenn die Zeile nicht nur den String "AAAA" enthält mit Regex die ganze Zeile auf Existenz des Strings prüfen
Gruß jodel32
mit awk kann ich helfen:
awk '{if($2 == "AAAA"){cnt=1}else{cnt+=1;if(cnt == 4){print $0}}}' Datei.txt
oder wenn die Zeile nicht nur den String "AAAA" enthält mit Regex die ganze Zeile auf Existenz des Strings prüfen
awk '{if($0 ~ /AAAA/){cnt=1}else{cnt+=1;if(cnt == 4){print $0}}}' info.txt