Zeielenblock von einer Datei in eine neue schreiben

C

Chrosoos

Grünschnabel
Hallo,

bin relativ neu in der Shell-Programmierung und brauch deswegen ein bisschen unterstüzung.

Ich wollte aus einer Datei zB. die Zeilen 15 bis 1120 in eine neue Datei schreiben. Versucht habe ich es mit sed.

Also: sed -n '15,1120p' Datei.txt > Ausgabedatei.txt

Nur schreibt er mir dann alles in eine Zeile. Wie kann ich auch die Zeilenumbrüche übernehmen?



Zum Abschluss noch eine kleine Frage. Ich werte mit sed auch bestimmte Zeilen aus und schreib alles was nach dem Doppelpunkt steht in Variablen:

So zB:
A=$(sed -n '6p' temp_DVH_file.txt);
A=$(echo $A | sed -e 's/.*://g' -e 's/ //g');

Nur dauert das irgendwie recht lange. Gibt es auch eine schnellere Methode.

Vielen Dank und freundliche Grüße,

Lukas
 
Hi,

dein Ansatz mit sed sollte schon laufen:
Code:
$ seq 1 5 | sed -n -e '2,4p'
2
3
4
$
Welche Version von sed, welches Betriebssystem verwendest du?

Zur zweiten Frage: statt dir nur wie im Beispiel die Zeile 6 ausgeben zu lassen, und dann bis zum Ende der Datei weiterzulesen, kannst du ja auch einfach abbrechen, wenn du die gesuchte Zeile gefunden hast, etwa
Code:
A=$(sed -n -e '6 {p;q}' temp_DVH_file.txt)
Wenn du mit grossen Dateien arbeitest, kann das schon einige Zeit einsparen. Ausserdem spricht natürlich nichts dagegen, die Variable gleich in einem Schritt zu setzen, also
Code:
A=$(sed -n '6 { s/.*://g; s/ //g'; p; q }' temp_DVH_file.txt)
Gruss, A.
 
Vielen Dank,

ich habs nur in cygwin ausprobiert und da hat er mir die Zeilen alle in eine Zeile geschrieben. Auf einem Unix System geht es.

Gruß
 

Ähnliche Themen

Text mit mehreren Zeilen und Sonderzeichen ersetzten

Aus pipeline in eine Datei schreiben mit und ohne Zeilenvorschub

Queue für copy Script

Array mit Werte - die Leerzeichen beinhalten - abfüllen

bash: Fehlermeldung und Werte in Array sortieren?

Zurück
Oben