diff

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von pseiko, 31.01.2007.

  1. pseiko

    pseiko Jungspund

    Dabei seit:
    19.01.2007
    Beiträge:
    10
    Zustimmungen:
    0
    hiho leute !

    mal wieder was zum skripten von mir.

    aufgabe:
    - 2 files miteinander vergleichen (ist ja prinzipiell nicht so schwer ;) )
    - beide files enthalten inhalt vom format: service servername - passwort
    - jetzt muss ich die einträge mit serverliste.alt mit serverliste.neu vergleichen
    - die neuen passwörter die in serverliste.neu vorkommen sollen dann in der alten überschrieben werden. um es zu verdeutlichen:

    serverliste.alt
    service1 servername1 - passwort1

    diff

    serverliste.neu
    service2 servername2 - password2

    ergebnis:
    serverliste.alt
    service1 servername1 - password2

    weiters erschwert wird das dadurch das die passwörter aus div. zeichene (also zahlen, buchstaben,usw.) bestehen und das ganze sollte dann in serverliste.alt sortiert (also alphabetisch) aufscheinen.

    die theorie ist ja immer so einfach, aber die praxis :(
    für jede erdenkliche hilfe bin ich sehr dankbar...aber bitte....nicht nur so posts wie "man diff" denn 1. hab ich die bereits gelesen und 2. hab ichs nicht so ganz mit dem logisch denke in der unix-shell welt :D
     
  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 Xanti, 31.01.2007
    Zuletzt bearbeitet: 31.01.2007
    Xanti

    Xanti Mouse Organist

    Dabei seit:
    05.09.2004
    Beiträge:
    1.855
    Zustimmungen:
    0
    Ähm, in welchem Zusammenhang stehen die beiden Zeilen aus serverliste.alt und serverliste.neu? Deine serverliste.neu müßte wohl so aussehen:

    service1 servername1 - password2

    Für diesen Fall müßte folgendes funktionieren:

    Code:
    sed -n 's/ -//p' serverliste.neu | while read serv name pass; do sed "s/\($serv $name - \).*/\1$pass/" serverliste.alt; done
    
     
  4. #3 pseiko, 01.02.2007
    Zuletzt bearbeitet: 01.02.2007
    pseiko

    pseiko Jungspund

    Dabei seit:
    19.01.2007
    Beiträge:
    10
    Zustimmungen:
    0
    wie meinst du in welchen zusammenhang? bei enthalten servernamen, beide enthalten passwörter.
    also genauer eigentlich root@servername TAB passwort
    deine variante hab ich als skript versucht auszuführen aber irgendwie ist da kein output am screen zu sehen ?(

    um noch präziser zu sein (wobei ich ja auch vorher nicht ganz korrekt war)

    serverliste.alt enthält:
    Code:
    service servername
    serverliste.neu enthält:
    Code:
    root@servername TAB passwort
    nun sollen die beiden files zusammengeführt werden

    also dann serverliste.ganz:
    Code:
    service TAB servername TAB root@servername TAB passwort
    natürlich müssen die zeilen übereinstimmen, also das service kann nicht bei einem servernamen stehen der überhaupt nix mit dem service zu tun hat weil es unterschiedliche services sind

    mom. sieht das skript welches ich mir anfertigen hab lassen so aus:
    Code:
    #!/usr/bin/sh
    cat serverliste.alt | while read x
    do
            set $x
            pw_eintrag=`grep $2 serverliste.neu`
            printf "%-25s\t%-25s\t%-5s\n" "$1" "$2" "$pw_eintrag"
    done

    so kommt ja schon das richtige format raus doch stehen in der serverliste.alt server drin, die bei serverliste.neu nicht berücksichtigt wurden demnach wurde bei denen auch das pw nicht geändert.

    beispiel von der auswertung:

    Code:
    service servername root@servername geändertes passwort
    --> so würds passen und dann kommen teilweise zeilen dazwischen mit:

    Code:
    service servername ....NICHTS... ...NICHTS...
    also es steht nicht "nichts" dort aber ihr wisst schon was ich meine ;)
    und damit da nicht "nichts" steht (ich weiß, verwirrend *g*) sollen dort die alten passwörter stehen und die wiederum werden aus dem file serverliste.ganzalt genommen welche folgendes format haben:

    Code:
    root@servername - passwort

    *uff*
     
  5. Xanti

    Xanti Mouse Organist

    Dabei seit:
    05.09.2004
    Beiträge:
    1.855
    Zustimmungen:
    0
    Ich finde es unschön, wenn man die Aufgabenstellung nicht korrekt stellt. Nichstdestotrotz ist mein Code-Beispiel mit kleinen Änderungen auch für das richtige Problem anwendbar. Die Änderungen überlasse ich Dir.
     
  6. #5 neutrino1, 01.02.2007
    Zuletzt bearbeitet: 01.02.2007
    neutrino1

    neutrino1 Mitglied

    Dabei seit:
    03.05.2005
    Beiträge:
    30
    Zustimmungen:
    0
    Hi!

    Wenn ich das richtig verstanden habe, dann hast du soetwas ...
    ... und willst das
    Richtig?

    edit:mir geht's nur darum, die Logik zu verstehen, Formatierung ist mir egal ...
     
  7. pseiko

    pseiko Jungspund

    Dabei seit:
    19.01.2007
    Beiträge:
    10
    Zustimmungen:
    0
    bisschen durcheinander aber fast stimmt es was du geschrieben hast:

    machen möchte ich diesen hier...

    cat service_server_list_sorted_mit_root | while read x
    do
    set $x
    pw_eintrag=`grep $2 new_root_logins.list`
    if [ "$pw_eintrag" = "" ]
    then
    #hier müssten nun die einträge aus der serverliste welche das format
    #enthalten service root@servername altespasswort in die auflistung von printf
    #reingegreped werden und dabei scheitere ich
    fi
    printf "%-25s\t%-25s\t%-5s\n" "$1" "$pw_eintrag"
    done
     
  8. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
Thema:

diff

Die Seite wird geladen...

diff - Ähnliche Themen

  1. diff in Bezug zu sed setzen

    diff in Bezug zu sed setzen: Hallo liebe Community, ich sitze seit gestern an einem Problem bei dem ihr mir hoffentlich helfen könnt. Meine Aufgabe ist es zwei...
  2. Bash - Zwei Binärdateien vergleichen (SQL Diff)

    Bash - Zwei Binärdateien vergleichen (SQL Diff): Moin, versuche zwei SQL Dumps miteinander zu vergleichen, dazu hole ich Stammdaten aus der MSSQL-DB und speichere sie direkt unter der Bash in...
  3. Wie ermittle ich die Differenz zwischen 2 Zahlen unter AIX (Syntax ähnl. wie LINUX) ?

    Wie ermittle ich die Differenz zwischen 2 Zahlen unter AIX (Syntax ähnl. wie LINUX) ?: Wie ermittle ich die Differenz zwischen 2 Zahlen unter AIX (Syntax ähnl. wie LINUX) ? Und wenn die Differenz nicht "0" ist, dann folgt Aktion ...
  4. Modulo C++ implementation (Diffie-Hellman-Schlüsselaustausch)

    Modulo C++ implementation (Diffie-Hellman-Schlüsselaustausch): Hi! Also ich hoffe einmal (ich gehe fast davon aus :D ), dass einige Leute hier im Forum den Diffie-Hellman-Schlüsselaustausch kennen. Unser...
  5. Patch erstellen mit patch oder diff

    Patch erstellen mit patch oder diff: Hallo zusammen Versuche gerade die Sache mit den Patches wirklich zu verstehen, denn ich habe nicht viel Erfahrung damit. Habe folgende...