sed mit Liste von Dateien

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von beaucoup, 15.11.2006.

  1. #1 beaucoup, 15.11.2006
    beaucoup

    beaucoup Grünschnabel

    Dabei seit:
    15.11.2006
    Beiträge:
    7
    Zustimmungen:
    0
    Hi,

    ich möchte ein Skript schreiben mit dem ich nach einem Text in mehreren Dateien suchen kann und diesen durch einen neuen ersetzen.

    Bin auch schon soweit dass ich mit "grep -ril meintext * " alle Dateien bekomm in denen mein Text steht.

    Mit "sed 's/alterText/neuerText/g' Dateiname" kann ich in einer Datei meinen Text suchen und ersetzen.

    Wie bekomme ich das jetzt für alle Dateien aus meiner Liste hin?

    Ich bekomme es nicht hin eine Schleife zu basteln mit der ich immer eine Zeile aus meim grep Befehl nehme um den sed Befehl auszuführen.

    Beschäftige mich erst seit ca. 1 Woche mit Linux Shell und Co, bin also für jede Hilfe/Erklärung dankbar.:)

    Vielen Dank für eure Hilfe!

    beaucoup
     
  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. dizzgo

    dizzgo Lernbereite Riesenratte

    Dabei seit:
    04.08.2005
    Beiträge:
    573
    Zustimmungen:
    0
    Ort:
    /ch/sg///
  4. Xanti

    Xanti Mouse Organist

    Dabei seit:
    05.09.2004
    Beiträge:
    1.855
    Zustimmungen:
    0
    Damit bekommst Du aber Probleme, falls die Filenamen Leerzeichen enthalten. Besser geeignet ist

    Code:
    grep -ril deintext * | while read file; do sed ... $file; done
    
    oder eine Lösung mit xargs.

    Gruss, Xanti
     
  5. dizzgo

    dizzgo Lernbereite Riesenratte

    Dabei seit:
    04.08.2005
    Beiträge:
    573
    Zustimmungen:
    0
    Ort:
    /ch/sg///
    Danke für den Hinweis. Wieder etwas wichtiges gelernt... (Denk immer an Filenamen mit Leerzeichen) ;)
    Kannst du mir sagen, warum das so ist, kann 'read' einfach von Haus aus mit Leerzeichen in Filenamen umgehen?

    Und wie stehts mit dem Quoting? Bei mir klappts nur wenn ich wie folgt quote... (also im Falle von Leerzeichen)
    Code:
    grep -ril deintext * | while read file; do sed 's/deintext/meintext/g' "$file" > "mod_$file"; done
    Dank und Gruss
    d22
     
  6. #5 beaucoup, 15.11.2006
    beaucoup

    beaucoup Grünschnabel

    Dabei seit:
    15.11.2006
    Beiträge:
    7
    Zustimmungen:
    0
    Hi

    vielen Dank für eure Antworten. Jetzt hab ich noch eine Frage werden die Datein dann auch mit geändertem Text gespeichert oder müsste ich dann noch ein
    Code:
    >$file
    hinten anhängen?

    beaucoup

    Wer lesen kann is klar im Vorteil ....
    Aber trotzdem wenn ich nur ein >$file anhänge wird meine Ursprungsdatei überschrieben oder?
     
  7. #6 Xanti, 15.11.2006
    Zuletzt bearbeitet: 15.11.2006
    Xanti

    Xanti Mouse Organist

    Dabei seit:
    05.09.2004
    Beiträge:
    1.855
    Zustimmungen:
    0
    Stimmt, irgendwas übersieht man immer ;)

    Schau Dir mal die sed-Option -i an. Dein >$file funktioniert nicht, Du müsstest mit einer temporären Datei arbeiten:

    Code:
    >"$file.tmp" && mv "$file.tmp" "$file"
    
     
  8. #7 Wolfgang, 15.11.2006
    Wolfgang

    Wolfgang Foren Gott

    Dabei seit:
    24.04.2005
    Beiträge:
    3.978
    Zustimmungen:
    0
    Ort:
    Erfurt
    Zu deiner Frage:
    - read ist es völlig egal, was da in die Variable gefüllt wird.
    - read weiß nicht, ob das Werte oder Dateinamen sind.
    - read trennt genauso am default Trennzeichen ($IFS).
    - read füllt die Variablen mit den Werten, und wenn mehr Werte als Variablen kommen, landet alles in der letzten Variable.

    Diese Eigenschaft nutzt man aus, indem man nur eine Variable vereinbart. Die erste und hier auch letzte Variable bekommt also alles.
    Deshalb funktioniert das auch mit Leerzeichen.

    Gruß Wolfgang
     
  9. #8 beaucoup, 15.11.2006
    beaucoup

    beaucoup Grünschnabel

    Dabei seit:
    15.11.2006
    Beiträge:
    7
    Zustimmungen:
    0
    Vielen Dank für die Hilfe hat super funktioniert!

    Gruß beaucoup
     
  10. dizzgo

    dizzgo Lernbereite Riesenratte

    Dabei seit:
    04.08.2005
    Beiträge:
    573
    Zustimmungen:
    0
    Ort:
    /ch/sg///
    @Wolfgang
    Danke für die Erklärung!

    Gruss
    d22
     
  11. Anzeige

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

    Wolfgang Foren Gott

    Dabei seit:
    24.04.2005
    Beiträge:
    3.978
    Zustimmungen:
    0
    Ort:
    Erfurt
    Hallo
    Eine Frage stellt sich mir aber doch noch:
    Warum brauchst du hier grep?
    sed ersetzt doch ohnehin nur dort den Text, wo er vorkommt.
    :think:
    Also werden bei dir alle Dateien von grep durchsucht, und von sed nocheinmal.
    :think:
    Eine find Ausgabe in die Pipe wär hier wohl performanter.
    Gruß Wolfgang
     
  13. #11 beaucoup, 15.11.2006
    beaucoup

    beaucoup Grünschnabel

    Dabei seit:
    15.11.2006
    Beiträge:
    7
    Zustimmungen:
    0
    Die Frage ist gut ;)

    Wie gesagt ich habe ein profundes eine-Woche-Linux-Wissen ;)

    Bin über jeden Ratschlag dankbar!

    Gruß beaucoup
     
Thema:

sed mit Liste von Dateien

Die Seite wird geladen...

sed mit Liste von Dateien - Ähnliche Themen

  1. perl script, das Dateien aus einer Liste löscht

    perl script, das Dateien aus einer Liste löscht: Hallo ich habe hier ein perl script, dass aus einer vorher generierten Liste, die so aus sieht 31edb809ff19486daf60e66cc3ab1a7d...
  2. Dateien eines Verzeichises + Inhalt in Liste

    Dateien eines Verzeichises + Inhalt in Liste: Hi, wie kann in der shell bestimmte dateien eines Verzeichnisses und deren Inhalt in eine "zweispaltige" liste scheiben (erste Spalte =...
  3. Liste von Dateien eines Verzeichnisses abarbeiten

    Liste von Dateien eines Verzeichnisses abarbeiten: Hallo, stundenlang im Forum und sonstwo gesucht, aber immer noch kein Schritt weiter. Gestehe: bin blutiger Anfänger. Die Lage: ich habe ein...
  4. Erzeugen eines HTML-File zur Verwaltung einer Liste von Bild-Dateien

    Erzeugen eines HTML-File zur Verwaltung einer Liste von Bild-Dateien: Hallo Ich bin ein Linux Jünger und wir haben gerade als Einstieg angefangen mit Shellscripten. Dabei soll ein HTML-File zur Verwaltung einer...
  5. Dateien auflisten und "verarbeiten"

    Dateien auflisten und "verarbeiten": Hi! Ich habe Dateien in der Form Zahl-Name-Zahl.ps in einem Verzeichnis, in dem sich auch nur diese Dateien befinden. Nun möchte ich ein Script...