![]() |
SELFHTML Forumsarchiv |
|
|
Die folgende Nachricht zum Thema stammt von: Dieter, 29. 12. 2006, 20:19
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.
Die folgende Nachricht zum Thema stammt von: Mathias Brodala, 29. 12. 2006, 20:46
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
--
ie:% fl:| br:< va:) ls:& fo:) rl:( n4:~ ss:) de:] js:| mo:| zu:)
debian/rules
Die folgende Nachricht zum Thema stammt von: fastix®, 29. 12. 2006, 20:51
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®
--
Als Freiberufler bin ich immer auf der Suche nach Aufträgen: Schulungen, Seminare, Training, Development
© 1998-2006
Impressum, Software: Classic Forum