sed / Variable in mehreren Dateien ersetzen

Dieses Thema im Forum "Programmieren allgemein" wurde erstellt von stuxevara, 11.04.2008.

  1. #1 stuxevara, 11.04.2008
    Zuletzt bearbeitet: 11.04.2008
    stuxevara

    stuxevara Grünschnabel

    Dabei seit:
    13.08.2007
    Beiträge:
    7
    Zustimmungen:
    0
    Hallo,

    muss mal wieder eine Anfängerfrage stellen.

    Ich lese mit read eine Variable aus.

    Code:
    echo " bitte den aktuellen Termin eingeben:"
    read VARIABLE
    In bestimmten Dateien möchte ich mittels sed überall wo TERMIN steht, die ausgelesene Variable einfügen.

    Wie mache ich das?

    Meine bisherigen Versuche
    Code:
    sed 's/TERMIN/`echo $VARIABLE`/g' a.tmp > a.sql
    Code:
    sed 's/TERMIN/$VARIABLE/g' a.tmp > a.sql
    ?(

    Eine weitere Frage möchte ich auch noch stellen:

    Ich möchte diese Substitution nicht nur in a sondern auch in b,c,d und e machen. Gibt´s eine Möglichkeit, gleich eine ganze Liste von Dateien abzuarbeiten
    .
    .
    .
    EDIT (autom. Beitragszusammenführung) :
    .

    Also für die Dateien habe ich eine Lösung gefunden. Ich habe eine Datei in der die Dateien stehen. Diese arbeite ich mit einer for-Schleife ab

    Code:
    for i in `cat liste.txt`
    do
            if [ ! -f $i ]
            then
                    echo "Datei $i existiert nicht"
            else
                    echo "Datei $i existiert und wird ersetzt"
                    [I]GESUCHTER SED-BEFEHL[/I]
    
    fi
    done
    Jetzt suche ich nur noch nach eine Lösung für sed :hilfe2:
     
  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///
    Damti 'sed' Variablen auflöst muss du das Statement einfach in doppelte Hochkommas setzen:
    Code:
    sed "s/TERMIN/$VARIABLE/g" a.tmp > a.sql
    Das sollte dann klappen...
    Gruss
    d22
     
  4. #3 stuxevara, 11.04.2008
    stuxevara

    stuxevara Grünschnabel

    Dabei seit:
    13.08.2007
    Beiträge:
    7
    Zustimmungen:
    0
    doch so einfach ... vielen Dank!
    Ich glaub so schnell wäre ich da nicht draufgekommen!

    Vielen Dank und ein schönes Wochenende
     
  5. #4 Gott_in_schwarz, 11.04.2008
    Gott_in_schwarz

    Gott_in_schwarz ar0

    Dabei seit:
    22.04.2007
    Beiträge:
    546
    Zustimmungen:
    0
    Ort:
    Niedersachsen
    Ahh!
    Ja eben nicht! Damit bash die Variable auflöst muss das in double-quotes.
    Die Variable wird ja in der bash und nicht in sed gesetzt, dann muss auch bash und nicht sed sie wieder "auflösen" (oder "expandieren"). Wollte man sed das Variablenauflösen überlassen wären single-quotes genau das Richtige...

    Ich denke mal, dass du das wusstest dizzgo, aber du hast es recht missverständlich ausgedrückt..
    Bei sed weiß ich das btw gar nicht, aber awk und perl zB benutzen ja auch das Dollarzeichen als Variablenindikator, da muss man dann, wenn man in awk oder perl Variablen benutzen will, seitens der bash single-quotes benutzen oder das dollerzeichen escapen, damit die bash die Variablen "in Ruhe" lässt...
    Sollte natürlich auch auf sh und ksh etc. anwendbar sein..

    *Senf dazugeb*
     
  6. yai

    yai yet another idiot

    Dabei seit:
    22.01.2007
    Beiträge:
    166
    Zustimmungen:
    0
    und statt 'cat liste.txt' kannste auch $(ls *.sql) nehmen, wildcard natürlich anpassen. Dann dürfen in den Dateinamen aber keine Leerzeichen vorkommen.
    Tschöö,
    yai
     
Thema: sed / Variable in mehreren Dateien ersetzen
Besucher kamen mit folgenden Suchen
  1. bash variablen in einer datei ersetzen

Die Seite wird geladen...

sed / Variable in mehreren Dateien ersetzen - Ähnliche Themen

  1. Text-Variable mit mehreren Zeilen

    Text-Variable mit mehreren Zeilen: Hallo, ich brauche für ein Skript eine Möglichkeit, in eine Textvariable in einer Schleife mehrere Zeilen einzufügen. Nach der Schleife...
  2. Linux 4.5 will UEFI-Variablen besser schützen

    Linux 4.5 will UEFI-Variablen besser schützen: Das Löschen bestimmter UEFI-Variablen kann manche Rechner nicht mehr startbar machen. Das kommende Linux 4.5 ergreift Maßnahmen dagegen, die im...
  3. Wie komme ich an den Inhalt des Inhalts einer Variable?

    Wie komme ich an den Inhalt des Inhalts einer Variable?: Hallo Zusammen, ich möchte meine Buildumgebung vereinfachen und besser zu automatisieren. Ein Skript schreibt Pfade in die env und diese...
  4. Textdatei zeilenweise in durchnummerierte Variablen schreiben

    Textdatei zeilenweise in durchnummerierte Variablen schreiben: Hi Leute, ich versuche folgendes Problem zu lösen. Ich möchte eine Textdatei einlesen und den Inhalt jeder Zeile in immer eine neue Variable...
  5. mysql Select Abfrageergebnis in unterschiedlichen Variablen sichern

    mysql Select Abfrageergebnis in unterschiedlichen Variablen sichern: Hallo zusammen, es geht um folgenden Teil meiner .sh-Datei: NumberCheck=`mysql $SQL_ARGS "SELECT lkw, Firma FROM adb_group WHERE...