Saixo
Posts: 17
Joined: Thu May 12, 2016 11:22 pm

Wie kann ich einfach den Inhalt einer Datei überschreiben?

Sat Nov 19, 2016 1:05 pm

Hallo.

Ich bin totaler Anfänger und möchte gerade eine Datei mit konsolen-befehl ändern. Ich möchte nicht direkt danach suchen und das gesuchte ersetzen mit sed. Ich möchte einefach den Inhalt überschreiben.

z.B.

~ $ nano testvar.txt

Inhalt: 1234

Ich möchte den Inhalt einfach auf 9999 ändern, habe aber keine Idee wie ^^ Mit dem sed befehl konnte ich 1234 ersetzen jedoch will ich es auch ändern können wenn ich den gegenwärtigen Inhalt nicht kenne

sehr peinliche frage, sicher ein kinderspiel für alle hier Icon_biggrin2

lg

ghans
Posts: 7878
Joined: Mon Dec 12, 2011 8:30 pm
Location: Germany

Re: Wie kann ich einfach den Inhalt einer Datei überschreibe

Sat Nov 19, 2016 1:11 pm

Code: Select all

echo 9999 > testvar.txt
überschreibt vollständig.

Code: Select all

echo 9999 >> testvar.txt
fügt hinzu / fügt an (append).

ghans
• Don't like the board ? Missing features ? Change to the prosilver theme ! You can find it in your settings.
• Don't like to search the forum BEFORE posting 'cos it's useless ? Try googling : yoursearchtermshere site:raspberrypi.org

franzhartwig
Posts: 12
Joined: Tue Jan 22, 2013 6:03 pm

Re: Wie kann ich einfach den Inhalt einer Datei überschreibe

Sun Nov 20, 2016 11:16 am

Du kannst bei sed mit regulären Ausdrücken arbeiten und so Muster ersetzen. So kannst Du auch mit Wildcards arbeiten. Der Befehl

Code: Select all

sed -i 's/.*/9999/g' testvar.txt
ersetzt den gesamten Inhalt der Datei testvar.txt durch die Zeichenfolge 9999. Um das zu verstehen, muss man sich ein wenig mit regulären Ausdrücken auseinander setzen. Das Zeichen . bedeutet bei regulären Ausdrücken ein beliebiges Zeichen (und zwar genau eins). Das * bedeutet, dass das vorangegangene Zeichen (hier also ein beliebiges Zeichen) beliebig oft vorkommen darf. So wird also jeder beliebige Dateiinhalt durch die angegebene Zeichenfolge 9999 ersetzt.

Return to “Deutsch”