Mám následující textový soubor:
abc
DEFG: 123
ghi
F
abc
DEFG: 123
hijk
F
abc
DEFG: 456
hij
(znak F je formfeed, slouží jako oddělovač záznamů.)
Víte někdo, jak najít všechny záznamy, s "DEFG" jiným než 123?
Chci v podstatě inverzi tohoto:
grep -B3 -A3 -U "DEFG: 123"
- najde řádek s "DEFG: 123" a vypíše ho spolu se 3 předchozími a 3 následujícími řádky.
(grep -v -B3 -A3 -U "DEFG: 123" je nesmysl)
Pokud by vše bylo na jednom řádku, mohl bych použít:
sed 's/F[^F]*DEFG: 123[^F]*F/F/g'
Standardně sed načte pouze 1 řádek vstupního souboru, pro multiline pattern space lze nějak použít příkazy N, D, P, ale nedaří se mi to.
Zatím to zkouším v grep a sed z UnxUtils.
Mohlo by to být něco ve stylu tohoto:
sed "/^F$/{ N .... }"
Děkuji za pomoc.