Portál AbcLinuxu, 12. května 2025 21:34
Představuju si to takto: gawk -f program.awk input.txt > output.txt
input.txt
a
b
c
d
program.awk:
if ($0=="c")
system ("echo $0 | sed -f program.sed >> output.txt")
else
print
program.sed:
/s/c/x/
output.txt by měl vypadat takto:
a
b
x
d
ale vypadne toto:
a
b
d
Kde udělali soudruzi z endéer chybu?
Tohle je samozřejmě maximálně zjednodušený příklad, který by se dal řešit úplně jinak, ve skutečnosti je to mnohem složitější. Rady typu "a co radši takhle" můžou bý zajímavé a užitečné, ale tady mi jde spíš o princip. Proč to nefunguje právě takhle? Díky
co misto system ("echo $0 | sed -f program.sed >> output.txt") dat print $0|"sed -f program.sed >> output.txt"
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.