Inhalt von 3 Files in eines

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von seraph, 03.09.2006.

  1. seraph

    seraph Jungspund

    Dabei seit:
    19.04.2004
    Beiträge:
    13
    Zustimmungen:
    0
    Hallo
    ich hoffe ich kan mein problem einfach erklären.

    ich habe 2 Dateien, in der einten Datei sagen wir strassen.txt, sind strassennamen eigetragen:

    muellerstrasse
    meierstrasse


    in der 2 Datei sind namen und spitznamen eingetragen

    meier lillard
    mueller xxx


    wie kan ich jetzt ein output file aus deisen bveiden erstellen lassen, welches dann so ausehen sollte:

    meier muellerstrasse lillard
    meier meierstrasse lillard
    mueller muellerstrasse xxx
    mueller meierstrasse xxx


    danke für die hilfe
     
  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. Xanti

    Xanti Mouse Organist

    Dabei seit:
    05.09.2004
    Beiträge:
    1.855
    Zustimmungen:
    0
    Code:
    cat namen.txt | while read name nick; do cat strassen.txt | while read strasse; do echo $name $strasse $nick; done; done
    Gruss, Xanti
     
  4. seraph

    seraph Jungspund

    Dabei seit:
    19.04.2004
    Beiträge:
    13
    Zustimmungen:
    0
    hallo danke
    das würde funktionieren, aber was ist wenn ich im namen.txt noch mehr parameter habe zb:

    meier lillard 23-10-1976

    und es soll dann so aussehen?

    meier muellerstrasse lillard 23-10-1976
    meier meierstrasse lillard 23-10-1976

    kann ich hierr nicht so arbeiten irgendwie im file selber:
    meier $strasse lillard 23-10-1976
     
  5. Xanti

    Xanti Mouse Organist

    Dabei seit:
    05.09.2004
    Beiträge:
    1.855
    Zustimmungen:
    0
    Mein Code funktioniert auch für Dein modifiziertes namen.txt.
     
  6. seraph

    seraph Jungspund

    Dabei seit:
    19.04.2004
    Beiträge:
    13
    Zustimmungen:
    0
    ja stimmt sorry hihih, jetzt muss ich das nur noch in ein bestehdnen script einbauen können, weist du evtl... warum es so funktioniert:

    Code:
    for HOST in $@
    do
        . $ETC/${HOST}_global.cfg
        if [ -f $VAR/global_${HOST}.cfg ]
        then
            $RM $VAR/global_${HOST}.cfg
        fi
        $CAT $ETC/global_.cfg | while read LINE
        do
            eval $LINE >> $VAR/global_${HOST}.cfg
        done
    done
    
    aber so nicht mehr?
    Code:
    for HOST in $@
    do
        . $ETC/${HOST}_global.cfg
        if [ -f $VAR/global_${HOST}.cfg ]
        then
            $RM $VAR/global_${HOST}.cfg
        fi
        $CAT $ETC/global.cfg | while read LINE
        $CAT $ETC/config.cfg | while read name config
        $CAT $ETC/scopenames.cfg | while read scopename
        do
            eval $LINE $name $scopename $config >> $VAR/global_${HOST}.cfg
        done
    done
    
    kommt:
    syntax error at line 105 : `done' unexpected
     
  7. Xanti

    Xanti Mouse Organist

    Dabei seit:
    05.09.2004
    Beiträge:
    1.855
    Zustimmungen:
    0
    Ja, Du machst zwei while-Schleifen auf, führst sie aber nicht zu ende. Eine while-schleife sieht so aus:

    Code:
    while <Bedingung>; do
    ...
    done
    
    Dein Code müsste so aussehen:

    Code:
    for HOST in $@
    do
        . $ETC/${HOST}_global.cfg
        if [ -f $VAR/global_${HOST}.cfg ]
        then
            $RM $VAR/global_${HOST}.cfg
        fi
        $CAT $ETC/global.cfg | while read LINE; do
          $CAT $ETC/config.cfg | while read name config; do
            $CAT $ETC/scopenames.cfg | while read scopename; do
               eval $LINE $name $scopename $config >> $VAR/global_${HOST}.cfg
            done
          done
        done
    done
    Gruss, Xanti
     
  8. seraph

    seraph Jungspund

    Dabei seit:
    19.04.2004
    Beiträge:
    13
    Zustimmungen:
    0
    ah alles klar danke :-)

    der output ist aber nicht so wie ich es möchte, naja egal, werde sonst irgendwie anders machen müssen, von hand die beiden outputs zusammen fügen, trotzdem nochmals danke
     
  9. name

    name Inactive user

    Dabei seit:
    28.08.2004
    Beiträge:
    592
    Zustimmungen:
    0
    Ort:
    Wien->127.0.0.1
    Muss es ein shell script sein oder kann es auch in python sein? :)
     
  10. seraph

    seraph Jungspund

    Dabei seit:
    19.04.2004
    Beiträge:
    13
    Zustimmungen:
    0
    ja muss shell sein,.. aber kan so ja gar nicht funlktionieren, hmm aber die lösung?

    original code:

    Code:
    for HOST in $@
    do
        . $ETC/${HOST}_global.cfg
        if [ -f $VAR/global_${HOST}.cfg ]
        then
            $RM $VAR/global_${HOST}.cfg
        fi
        $CAT $ETC/global_.cfg | while read LINE
        do
            eval $LINE >> $VAR/global_${HOST}.cfg
        done
    done

    der gibt ein output file was auch funktioniert, jetzt möchte ich meinen code zusätzlioch unten an diesem file noch einfügen, aber so wie ich es gemacht habe, hängt er es an jede einzelne zeile an
     
  11. Xanti

    Xanti Mouse Organist

    Dabei seit:
    05.09.2004
    Beiträge:
    1.855
    Zustimmungen:
    0
    Zeig mal die drei Files und was rauskommen soll.

    Gruss, Xanti
     
  12. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  13. #11 Wolfgang, 04.09.2006
    Zuletzt bearbeitet: 04.09.2006
    Wolfgang

    Wolfgang Foren Gott

    Dabei seit:
    24.04.2005
    Beiträge:
    3.978
    Zustimmungen:
    0
    Ort:
    Erfurt
    Hallo

    Ich mag nur mal so anmerken, dass es dafür paste gibt.
    paste [OPTIONEN] datei1 datei2 >>outputfile
    man paste

    Die Shell erlaubt viele Wege zum Glück, man kann sich auch den leichteren wählen. ;)
    Um den Umgang mit Schleifen zu lernen, ist Xanti sein Vorschlag aber allemal gut.
    Gruß Wolfgang
    EDIT
    Wenn du die Variblenreihenfolge wechseln willst, hängst du einfach noch eine while read dazwischen und tausche die Variablen
     
  14. Xanti

    Xanti Mouse Organist

    Dabei seit:
    05.09.2004
    Beiträge:
    1.855
    Zustimmungen:
    0
    paste kannte ich noch nicht. Gleichmal anschauen :)

    Gruss, Xanti
     
Thema:

Inhalt von 3 Files in eines

Die Seite wird geladen...

Inhalt von 3 Files in eines - Ähnliche Themen

  1. Txt Inhalt bearbeiten/ergänzen

    Txt Inhalt bearbeiten/ergänzen: Hi, ich habe folgendes Problem. In meiner txt habe ich mehrere Links untereinander aufgefuehrt. http://www.link1.de/ordner...
  2. Dateiinhalte vergleichen - Neue Sätze dann ausgeben

    Dateiinhalte vergleichen - Neue Sätze dann ausgeben: Liebe Forumsmitglieder, ich benöte mal wieder Eure Hilfe: Ich möchte 2 Dateien vergleichen. Datei-1 hat z.B. 100 Datensätze mit mehreren Feldern...
  3. 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...
  4. 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...
  5. html seite runterladen und die Inhalte als .txt-Date speichern

    html seite runterladen und die Inhalte als .txt-Date speichern: Hallo! Ich bin noch neu auf dem Gebiet, von daher denke ich sind meine Fragen für manche von euch recht simpel. Mit den Standardbefehlen habe ich...