Eine neue Zeile am Anfang der Datei einfügen

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von legeti, 09.02.2007.

  1. legeti

    legeti Jungspund

    Dabei seit:
    19.10.2006
    Beiträge:
    23
    Zustimmungen:
    0
    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!
     
  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. Giglio

    Giglio Doppel-As

    Dabei seit:
    21.12.2006
    Beiträge:
    140
    Zustimmungen:
    0
    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
     
  4. legeti

    legeti Jungspund

    Dabei seit:
    19.10.2006
    Beiträge:
    23
    Zustimmungen:
    0
    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!
     
  5. Xanti

    Xanti Mouse Organist

    Dabei seit:
    05.09.2004
    Beiträge:
    1.855
    Zustimmungen:
    0
    Code:
    sed -i '1 i\Textzeile' file
    
    Gruß, Daniel
     
  6. #5 Wolfgang, 09.02.2007
    Wolfgang

    Wolfgang Foren Gott

    Dabei seit:
    24.04.2005
    Beiträge:
    3.978
    Zustimmungen:
    0
    Ort:
    Erfurt
    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
     
  7. legeti

    legeti Jungspund

    Dabei seit:
    19.10.2006
    Beiträge:
    23
    Zustimmungen:
    0
    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!
     
  8. Xanti

    Xanti Mouse Organist

    Dabei seit:
    05.09.2004
    Beiträge:
    1.855
    Zustimmungen:
    0
    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?
     
  9. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  10. #8 Wolfgang, 13.02.2007
    Wolfgang

    Wolfgang Foren Gott

    Dabei seit:
    24.04.2005
    Beiträge:
    3.978
    Zustimmungen:
    0
    Ort:
    Erfurt
    @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
     
  11. #9 Schlaubi_fi.de, 13.02.2007
    Schlaubi_fi.de

    Schlaubi_fi.de Mac OS X User

    Dabei seit:
    22.12.2004
    Beiträge:
    304
    Zustimmungen:
    0
    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
     
Thema: Eine neue Zeile am Anfang der Datei einfügen
Besucher kamen mit folgenden Suchen
  1. write in neue zeile python

    ,
  2. Datei einfügen in UNIx

    ,
  3. cat neue Zeile

    ,
  4. cat in neue zeile,
  5. cat zeile anfügen,
  6. Was kann ich von Anfang datei schreiben,
  7. sed zeile einfügen,
  8. bash zeile am einfügen,
  9. bash zeile anfang hinzufuegen,
  10. python zeile in textdatei einfügen,
  11. Neue zeile in datei oben einfügen bash,
  12. basj script zeile in dateien einfügen
Die Seite wird geladen...

Eine neue Zeile am Anfang der Datei einfügen - Ähnliche Themen

  1. Mozilla will Thunderbird eine neue Heimat schaffen

    Mozilla will Thunderbird eine neue Heimat schaffen: Eine Projektausschreibung und ein Report auf den Webseiten von Mozilla leiten die endgültige Trennung von Thunderbird und Firefox ein. Weiterlesen...
  2. Einen guten Rutsch und ein frohes neues Jahr!

    Einen guten Rutsch und ein frohes neues Jahr!: Die Redaktion von Pro-Linux wünscht allen Lesern einen guten Rutsch und ein erfolgreiches Jahr 2016. Weiterlesen...
  3. Frankreich erneuert seine Referenzliste zu freier Software

    Frankreich erneuert seine Referenzliste zu freier Software: Frankreich hat die Ausgabe für 2016 von SILL, der Referenzliste zu freier Software zur Verwendung in französischen Amtsstuben herausgegeben....
  4. Firefox 41 mit kleineren Neuerungen

    Firefox 41 mit kleineren Neuerungen: Nachdem Mozilla einige Neuerungen von Firefox verschoben hat, fallen die Änderungen der aktuell freigegebenen Version 41 eher bescheiden aus. Neu...
  5. Teil einer Variablen auslesen und in neue Variable schreiben

    Teil einer Variablen auslesen und in neue Variable schreiben: Hallo, ist für Euch bestimmt ganz einfach, aber trotz googlen komme ich nicht auf eine Lösung. In Variable x habe ich stehen: xy,ab Nun möchte...