Zeielenblock von einer Datei in eine neue schreiben

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von Chrosoos, 25.01.2013.

  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. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. #2 floyd62, 27.01.2013
    floyd62

    floyd62 Routinier

    Dabei seit:
    01.05.2007
    Beiträge:
    309
    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.
     
  4. #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. 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...
  2. 2 Zeilen aus einer txt auslesen

    2 Zeilen aus einer txt auslesen: Hallo Leute, ich habe eine Datei die immer aus zwei zusammenhängenden Zeilen besteht, als Beispiel: DE0006231004 # 15,04 Infineon DE0005785604...
  3. Shell-Skript Datum in einer Datai suchen

    Shell-Skript Datum in einer Datai suchen: Hallo zusammen Ich komm eigentlich aus der Klicki-Bunti-Welt von Windows. Seit geraumer Zeit versuche ich meine Künste mit verschiedenen...
  4. Timestamp an Inhalt einer Textdatei anfügen

    Timestamp an Inhalt einer Textdatei anfügen: Hallo, ich als neuer, unerfahrener Nutzer von Linux und der bash hätte folgende Frage. Und zwar würde ich gerne mit einem command den Zeitstempel...
  5. VoCore: Kleiner Open-Source-Platinenrechner mit OpenWrt

    VoCore: Kleiner Open-Source-Platinenrechner mit OpenWrt: VoCore ist Open Source, was Hard- und Software betrifft, kostet 20 US-Dollar und setzt beim Basteln eine Stufe tiefer an als der Raspberry Pi....