Zeielenblock von einer Datei in eine neue schreiben

Diskutiere Zeielenblock von einer Datei in eine neue schreiben im Shell-Skripte Forum im Bereich Programmieren unter Linux/Unix; Hallo, bin relativ neu in der Shell-Programmierung und brauch deswegen ein bisschen unterstüzung. Ich wollte aus einer Datei zB. die Zeilen...

  1. #1 Chrosoos, 25.01.2013
    Chrosoos

    Chrosoos Grünschnabel

    Dabei seit:
    25.01.2013
    Beiträge:
    6
    Zustimmungen:
    0
    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
     
  2. #2 floyd62, 27.01.2013
    floyd62

    floyd62 Routinier

    Dabei seit:
    01.05.2007
    Beiträge:
    315
    Zustimmungen:
    0
    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.
     
  3. #3 Chrosoos, 28.01.2013
    Chrosoos

    Chrosoos Grünschnabel

    Dabei seit:
    25.01.2013
    Beiträge:
    6
    Zustimmungen:
    0
    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ß
     
Thema:

Zeielenblock von einer Datei in eine neue schreiben

Die Seite wird geladen...

Zeielenblock von einer Datei in eine neue schreiben - Ähnliche Themen

  1. Problem bei der installation einer Sun Netzwerkkarte

    Problem bei der installation einer Sun Netzwerkkarte: Guten Morgen zusammen, beim installieren einer zusätzlichen Netzwerkkarte habe ich ein Problem. Die Karte wird nicht automatisch installiert. Es...
  2. 2 Spalten in EINER Textdatei GETRENNT addieren

    2 Spalten in EINER Textdatei GETRENNT addieren: Hey, bin ein ziemlicher Neuling in Sachen programmieren. Nun steh ich vor dem Problem, dass ich 2 Zahlenspalten inner Textdatei (vim) getrennt...
  3. Summe von Zahlen in einer Zeilen bilden

    Summe von Zahlen in einer Zeilen bilden: Auf ein Neues... Ich komme bei folgender Problematik nicht weiter: Ich habe eine Datei (zahlen.txt), die ich einlese mit folgenden Daten: 111 222...
  4. Bestimmte Zeilen einer Spalte addieren

    Bestimmte Zeilen einer Spalte addieren: Hallo, würde mich über Hilfe in Form eines Unix-Befehls oder AWK bei folgendem Problem freuen: Ich habe eine Textdatei, in der Werte drin sind in...
  5. Alle Dateien eines Verzeichnisses mit einer anderen Datei vergleichen

    Alle Dateien eines Verzeichnisses mit einer anderen Datei vergleichen: Hallo, ich habe ein Verzeichnis, darin enthalten sind mehrere Dateien. Nun möchte ich alle Dateien (Parameter $1) gegen eine konstante Datei...