2 Dateien Verlgeichen, Gemeinsamkeiten Exportieren

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von bloch-m, 27.03.2008.

  1. #1 bloch-m, 27.03.2008
    bloch-m

    bloch-m Jungspund

    Dabei seit:
    25.03.2008
    Beiträge:
    13
    Zustimmungen:
    0
    Einen wunderschönen Tag wünsche ich euch... :-).

    nachdem ich nach 9 std. dauer googlen und jegliches rumprobieren keine lust mehr habe. Habe ich beschlossen euch an meinem jetzigen und größten Problem teil haben zu lassen.

    Und zwar versuche ich vergeblich 2 Dateien miteinander zu vergleichen wo in beiden quasi das selbe drinne steht.
    In Datei 1 Steht z.b. folgendes Drin:

    Hallo ich bin ein Test Text

    und in Datei 2 steht dann folgendes drinn

    Antwort: Hallo ich bin ein Test Text

    Nun hät ich gern das Datei 1 mit Datei 2 verglichen werden und die Zeile in der die Gemeinsamkeiten auftreten soll herausgelöscht werden aus beiden Dateien und in einer 3. Datei hineingeschrieben werden.

    Der Text der in einer Zeile von Datei 1 drin ist ist immer gleich dem Text der in einer Zeile von Datei 2 drin ist bis auf das vor dem test z.B. Antwort: steht.

    Ich habs schon mit diff ausprobiert aber da zeigt der ja die sachen an die ungemeinsam sind ^^... und der will net checken das in der Zeile "Hallo ich bin ein Test Text" das selbe drinn steht wie in der Zeile "Antwort: Hallo ich bin ein Test Text" und mit Sed habe ich auch keine Lösung gefunden Oo . Mir käme zwar Cut im sinn aber glaube das das eher nicht hilft

    Hat denn jemand von euch eine Idee dazu???????

    Ich bedanke mich nochmal ganz ganz doll bei euch
    und ps versuche das auf einem Fedora8 System ;)
     
  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. sinn3r

    sinn3r Law & Order
    Moderator

    Dabei seit:
    28.12.2006
    Beiträge:
    2.764
    Zustimmungen:
    0
    Ort:
    Wentorf
    Welche Shell?
     
  4. #3 ralze, 27.03.2008
    Zuletzt bearbeitet: 27.03.2008
    ralze

    ralze Foren As

    Dabei seit:
    08.06.2007
    Beiträge:
    89
    Zustimmungen:
    0
    Ort:
    Zürich
    Moin, moin!

    Leider hab ich nicht genau verstanden was dein entgültiges Ziel ist. Du willst, dass der Inhalt bzw. der Text nur noch in einer Datei vorkommt? Wenn das der Fall ist geht es doch eigentlich nur noch darum, Duplikate zu identifizieren und zu löschen? Um wie viele Dateien handelt es sich denn?

    Ohne genaueres zu wissen, würde ich trotzdem mal vorschlagen, ein Skript zu basteln, dass eine Datei einliest, "Antwort :" vor den String klatscht und schaut ob der Inhalt einer anderen Datei mit diesem String übereinstimmt, wenn ja, dann wird die Datei gelöscht ... oder der String, ohne "Antwort :" in eine neue Datei geschrieben.

    siehe auch http://xkcd.com/208/

    mach dieses Skript schön gesprächig, so dass du nachvollziehen kannst, ob es das macht, was du dir vorgestellt hast ...
     
  5. #4 bloch-m, 27.03.2008
    Zuletzt bearbeitet: 27.03.2008
    bloch-m

    bloch-m Jungspund

    Dabei seit:
    25.03.2008
    Beiträge:
    13
    Zustimmungen:
    0
    Öhm GNU Bash :-)

    sorrz


    @ralze hmmm auf die Idee kam ich ja noch nicht vor der Zeile dann ein Antwort: hin zu ballern ... danke für den guten Ansatz :-)... allerdings dürfte es schwer sein weil nicht immer Antwort: vor dem eigentlichen Text steht.
     
  6. #5 Wolfgang, 27.03.2008
    Wolfgang

    Wolfgang Foren Gott

    Dabei seit:
    24.04.2005
    Beiträge:
    3.978
    Zustimmungen:
    0
    Ort:
    Erfurt
    Hallo
    Da bleiben schon noch ein paar Fragen offen.
    Z.B. ob es um die Reihenfolge geht, oder nicht, ob Zeilen doppelt vorkommen können oder nicht.

    Dieser Perleinzeiler findet alle Zeilen, die in beiden Dateien vorkommen und gibt das Ergebnis in Datei3 aus, wobei hier die Reihenfolge egal ist.
    Code:
    perl -ne '(($h{$_}.= @ARGV) =~ /10$/) ? print : 1' Datei1 Datei2 >Datei3
    
    Wolfgang
     
  7. #6 bloch-m, 27.03.2008
    Zuletzt bearbeitet: 27.03.2008
    bloch-m

    bloch-m Jungspund

    Dabei seit:
    25.03.2008
    Beiträge:
    13
    Zustimmungen:
    0
    DIe Zeilen werde vorher mit sort bei beiden Dateien geordnet so sollte theoretisch zumindest in beiden Dateien in der selben Zeile "Hallo ich bin ein Test Text" "Antwort: Hallo ich bin ein Test Text" stehen

    Joa kann passieren ist aber sehr unwarscheinlich das dies passieren wird ... also gehen wir mal vom unwarsheinlichen fall aus :-D

    achso *lol* Mega riesen Dank an euch alle :-)... auch wenn ich ne fehlermeldung bekomme zu deinem kleinen Einzeiler Wolfgang "Syntax error at -e line 1, @EOF
    Execution of -e aborted due to compilation errors."

    aber dennoch mega dank :-)
     
  8. #7 Wolfgang, 27.03.2008
    Wolfgang

    Wolfgang Foren Gott

    Dabei seit:
    24.04.2005
    Beiträge:
    3.978
    Zustimmungen:
    0
    Ort:
    Erfurt
    Funktioniert hier wunderbar:
    Code:
    $ for i in {1..50}; do echo $i ;done >tmp1
    
    $ for i in {40..60}; do echo $i ;done >tmp2
    
    $ perl -ne '(($h{$_}.= @ARGV) =~ /10$/) ? print : 1' tmp1 tmp2
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    
     
  9. #8 bloch-m, 27.03.2008
    Zuletzt bearbeitet: 27.03.2008
    bloch-m

    bloch-m Jungspund

    Dabei seit:
    25.03.2008
    Beiträge:
    13
    Zustimmungen:
    0
    hmm jap so funktionierts auch wenigstens ein guter ansatz hehe Danke :-)...
    muss nur noch irgendwie dazu bringen das es zu der ganzen sache passt... vorher werden nämlich mehrere Dateien durchsucht wo nach einem bestimmten Wort sucht und wenn er das Wort in einer Datei gefunden hat sucht der in der Datei nach einem 2. Wort und schreibt die Zeile wo das 2. Wort steht in Datei1 rein(z.b. Betreff: Hallo ich bin ein Test Text) und das selbe wird in einem anderen Ordner gemacht wo er es dann in Datei 2 reinschreibt (z.b. Betreff: Bestätigung: Hallo ich bin ein Test Text)
    Danach werden beide Dateien mit sort Sortier und zu guter letzt wird mit sed bei beiden Dateien das Wort "Betreff: " gelöscht.

    Danach soll er die beiden Dateien vergleichen und gemeinsamkeiten rauschneiden und in einer 3. Datei reinschreiben.
    Da ich das ganze bisher mit shell skript geschafft habe hatte ich gedacht es gäbe auch ein einzelnes command dafür.:-)


    Hmmm ich habe jetzt mal einen anderen weg eingeschlagen einfacher aber nicht so dolle egal :-)

    Und nochmals Danke fuer eure Hilfe :-)
     
  10. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  11. #9 Gott_in_schwarz, 27.03.2008
    Gott_in_schwarz

    Gott_in_schwarz ar0

    Dabei seit:
    22.04.2007
    Beiträge:
    546
    Zustimmungen:
    0
    Ort:
    Niedersachsen
    Warum nicht einfach mit grep?

    Code:
    $ cat bla
    Antwort: Hallo ich bin ein Test Text
    bla
    $ cat blub
    Hihi
    Hallo ich bin ein Test Text
    $ grep -Ff blub bla
    Antwort: Hallo ich bin ein Test Text
    Das würde dir die "gleichen" Zeilen geben, wobei das jetzt natürlich immer mit dem "Antwort-Prefix" versehen ist, welches du zum Beispiel mit "-o" "wegschneiden" könntest:
    Code:
    $ grep -oFf blub bla
    Hallo ich bin ein Test Text
    Die Zeilen aus den "Ursprungsdateien" herausschneiden sollte eigentlich auch kein großes Thema mehr sein.. Oder hab ich wieder was gravierend falsch verstanden?
     
  12. #10 bloch-m, 28.03.2008
    Zuletzt bearbeitet: 28.03.2008
    bloch-m

    bloch-m Jungspund

    Dabei seit:
    25.03.2008
    Beiträge:
    13
    Zustimmungen:
    0
    Hehe Supi danke :-) bin da aber mitlerweile selbst drauf gekommen :-D... hab das jetzt so gemacht das ich mit sed z.b. Antwort: auschneiden lasse ... und mit comm lasse ich die 2 Dateien dann vergleichen und in einer 3. Datei schreibt der die Gemeinsamkeiten dann rein... muss nur noch hinbekommen das die gemeinsamkeiten dann aus den 2 Dateien raus löscht hmmm
     
Thema:

2 Dateien Verlgeichen, Gemeinsamkeiten Exportieren

Die Seite wird geladen...

2 Dateien Verlgeichen, Gemeinsamkeiten Exportieren - Ähnliche Themen

  1. User sollen Dateien speichern und ändern, aber nicht neu anlegen dürfen

    User sollen Dateien speichern und ändern, aber nicht neu anlegen dürfen: Hallo liebe Helfer, welche Einstellungen muss ich in der smb.conf bzw. unter Linux vornehmen, damit User vorhandene Dateien öffnen und speichern...
  2. Alle Dateien eines Verzeichnisses mit einer anderen Datei vergleichen

    Alle Dateien eines Verzeichnisses mit einer anderen Datei vergleichen: Hallo, ich habe ein Verzeichnis, darin enthalten sind mehrere Dateien. Nun möchte ich alle Dateien (Parameter $1) gegen eine konstante Datei...
  3. Dateien selektieren und zählen

    Dateien selektieren und zählen: Hallo, das ist mein erster Beitrag, bitte entschuldigt, falls nicht alles richtig geschrieben ist. Ich muss meine erste Hausaufgabe als...
  4. Benötige Hilfe- Dateien vergleichen

    Benötige Hilfe- Dateien vergleichen: Hallo, für eine Arbeit an der Uni muss ich einige viele Bilder miteinander vergleichen, was ich gerne durch eine Automatisierung etwas...
  5. Amarok streikt bei *.m4a Dateien

    Amarok streikt bei *.m4a Dateien: Hallo zusammen, vor Kurzem habe ich einen neuen Rechner zusammengebaut und mit OpenSuse 13.2 aufgesetzt. Nun musste ich aber feststellen, dass...