Output-File für sed
Dieter
- software
Guten Abend!
Kann man bei sed auch eine Art Output file angeben? Also ich z.B. die Zeichenkette Test1 in Datei test durch Test2 ersetzen:
sed 's/Test1/Test2/g' test > test funktioniert nicht, danach ist test nämlich leer. Gibt es noch eine andere Möglichkeit? Ich will dazu nämlich keine tmp-Datei benutzen.
Hallo Dieter.
sed 's/Test1/Test2/g' test > test funktioniert nicht, danach ist test nämlich leer. Gibt es noch eine andere Möglichkeit? Ich will dazu nämlich keine tmp-Datei benutzen.
Du könntest sed anweisen, die jeweilige Datei direkt zu bearbeiten. Merkwürdigerweise ist das hierzu erforderliche Argument in der deutschen sed-Manpage nicht dokumentiert. Hier der Auszug aus der englischen:
-i[SUFFIX], --in-place[=SUFFIX]
edit files in place (makes backup if extension supplied)
Einen schönen Freitag noch.
Gruß, Mathias
Moin!
sed 's/Test1/Test2/g' test > test funktioniert nicht, danach ist test nämlich leer. Gibt es noch eine andere Möglichkeit? Ich will dazu nämlich keine tmp-Datei benutzen.
Ja und nein. Das die Datei leer ist ist normal, weil um hineinzuschreiben wird diese geöffnet, dern Länge auf 0 gesetzt und erst dann geschrieben. Zudem wird die Datei erst zum Schreiben geöffnet, also geleert und dann gelesen.
Du kannst über eine Variable gehen:
~ variable=
sed 's/Test1/Test2/g' test && echo $variable > test
vor 'sed' und nach 'test' stehen backticks
. (Das sind diese kleinen, von links nach rechts geneigten Schrägstriche)
MFFG (Mit freundlich- friedfertigem Grinsen)
fastix®