Portál AbcLinuxu, 25. dubna 2024 01:03
XXX Hel
lo
world!YYY
potrebujem zmenit na:XXXAhoj svet!YYY
s/XXX\_[^>]*YYY/XXXAhoj svet!YYY/g
Problem je, ze sed nepozna \_ (zahrnutie newlinov do lubovolnych znakov)/XXX/,/YYY/d)
Viem, v sed-e existuje prikaz N, ale musime dopredu poznat pocet riadkov, na ktorych sa nachadza hladany retazec a to ja neviem. Ako sa teda da pouzit viacriadkovy search&replace v sed-e?sed '/XXX/{:a;N;s/YYY/YYY/;t b;b a;:b;s/\(XXX\).*\(YYY\)/\1Ahoj svete\2/}'Ovšem sed už není na tyto věci ideální nástroj.
sed '/XXX/{:a;N;s/\(XXX\).*\(YYY\)/\1Ahoj\2/;T a}'
Tiskni Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.