Eine neue Zeile am Anfang der Datei einfügen

L

legeti

Jungspund
Hallo,

ich habe ein Problem: Wie kann ich eine Zeile am Anfang einer Datei einfügen ohne ein neues File zu erstellen?

"neue Zeile" + alle anderen Zeilen aus Datei -> Output in die selbe Datei.

Vielen Dank für eure Unterstützung!
 
Hi,

musst du halt mit nem kleinen "Hack" machen;

#! /bin/bash

echo "neue Zeile" > filename
cat file >> filename
rm file
mv filename file

Mfg

Sebi
 
danke, aber

kann man das nicht machen ohne das zusätzliche dateien angelegt werden? mit sed / awk?? Habe mal was mit sed "Zeile i\\TEXT" gefunden das funktioniert bei mir aber nicht!

Vielen Dank aber schonmal!
 
Code:
sed -i '1 i\Textzeile' file

Gruß, Daniel
 
Hallo
Dafür gibt es verschiedene Möglichkeiten:
GNU sed:
Code:
sed -e '1s/.*$/Neuer Text\n\&&/g' Inputfile
Perl
Code:
perl -p -i -e 'BEGIN{print "Neuer Text\n}' INPUT

Mit reinen Shellmitteln kommst du eine temporäre Datei nicht herum.

Gruß Wolfgang
 
Hi,

Vielen Dank!! Ich habe aber noch eine Frage!
Bei der sed Methode von Wolfgang bekomme ich dieses Problem:
Code:
sed -e '1s/.*$/Neuer Text\n\&&/g' Inputfile
gibt er das \&& so aus wie es da steht.

bei der sed Methode:
Code:
perl -p -i -e 'BEGIN{print "Neuer Text\n}' INPUT
gibt er nur die neue Zeile aus! PS: Da fehlt doch noch ein
oder?

Woran liegt das!

Vielen Dank!
 
Da Wolfgang nicht da ist, werde ich mal antworten (ich hoffe, er nimmt's nicht übel ;)):

Der erste sed-Befehl hat wirklich ein \& zuviel:

Code:
sed -i '1s/.*$/Neuer Text\n&/g' file

Beim zweiten Befehl schreibt Perl nicht in den Stream, sondern in die Standard-Ausgabe. Der Grund fällt mir gerade nicht ein. Was aber geht:

Code:
perl -pi -e 'print "Neuer Text\n" if (1..1)' file

Und Du hast Recht, es fehlt ein ". Das kann aber immer mal vorkommen, da wir die Lösungen nicht immer überprüfen und eingeschlichene Fehler den Fragenden ruhig auf die Probe stellen können.

Gruß, Daniel

P.S.: Nur interessehalber: geht eigentlich meine sed-Lösung?
 
@Xanti
Du bist gerade in die Rolle meines Debuggers geraten.
(wo und warun nicht war schlaubie...) ;)
Danke.
Ja klar, waren einige Fipptehler drin ( wie manchmal, wenn ich das einfach so reinhaue ohne selbst auszuführen).
Asche auf mein Haupt.
Ich will das nicht entschuldigen, aber wenn man sich selbst damit auseinandersetzt, wird es schnell klar wo der Fehler liegt.
Wenigstens ist ein Lösungsansatz dann selbst erkennbar.


@Xantie
Klar geht deine Methode (wenigstens mit GNU sed)

Gruß Wolfgang
 
Entschuldigt Leute mir hat mein Prozessor nicht genügend CPU-Zeit zur Verfügung gestellt, ich war den ganzen gestrigen Tag anderweitig beschäftigt. :D
 

Ähnliche Themen

Verzeichnis mit 1200 Dateien auf Verweise in Textdateien checken

chown Befehl in einem Script

Hilfe für ein shell script

Zeilen auslesen und anderer Stelle wieder einfügen

es kommen abwechselnd neuere Distributionen...

Zurück
Oben