Eint Unixbefehl mit dem man viele Texdateien auf einmal miteinander vergleichen kann

Dieses Thema im Forum "Unix Derivate & sonst. Unix Fragen" wurde erstellt von SkYdRaXx, 18.10.2006.

  1. #1 SkYdRaXx, 18.10.2006
    SkYdRaXx

    SkYdRaXx Grünschnabel

    Dabei seit:
    18.10.2006
    Beiträge:
    1
    Zustimmungen:
    0
    Hi ,
    ich suche einen Unixbefehl oder ein Unixtool mit dem man verschiedene txt files
    miteinander vergleichen kann. Folgendes Szenario:

    Ich habe so 30-40 Texte im txt Format und muss pruefen welche Saetze innerhalb dieser Menge an Files gleich sind (Es ist ein Linguistikprojekt)

    Und in welcher Files die gleichen stehen

    Ich habe es mit diff vesucht aber mit diff kann ich ja nicht 40 files gleichzeitig abfragen und mit diff3 maximal ja 3.

    Gibt es irgendeine Idee??

    Es wäre wirklich wichtig ich bin mit meinem Latein am Ende.

    LG
    Timo
     
  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 satisfied, 18.10.2006
    satisfied

    satisfied Mitglied

    Dabei seit:
    09.09.2006
    Beiträge:
    32
    Zustimmungen:
    0
    Ein einzelner Befehl wird da nicht helfen. Aber man könnte sich z.B. die Dateien einzeln hernehmen und dann für jeden Satz in der ersten Datei prüfen, ob dieser auch in allen anderen Dateien vorkommt. Wenn ja, wird der Satz in eine Ergebnis-Textdatei gepackt. Und hinter den Satz mit Kommatrennung die Dateinamen, in denen der Satz auch vorkommt. So wird dann jede Datei Satz für Satz mit den anderen Dateien vergleichen, wobei der Aufwand zum Ende hin geringer wird, weil ja die Sätze, die schon in der Ergebnisdatei stehen, nicht nochmal in allen Dateien gesucht werden müssen. Nur so ein Denkanstoß...

    Schönen Gruß,
     
  4. theton

    theton Bitmuncher

    Dabei seit:
    27.05.2004
    Beiträge:
    4.820
    Zustimmungen:
    0
    Ort:
    Berlin, Germany
    Bau dir einfach ein Shell-Skript für diff, dann hast du das in einem Befehl.
     
  5. #4 Jabo, 19.10.2006
    Zuletzt bearbeitet: 19.10.2006
    Jabo

    Jabo Aufgabe ohne Minister

    Dabei seit:
    12.10.2006
    Beiträge:
    1.322
    Zustimmungen:
    0
    Ort:
    Hamburg
    Perl? Dateistruktur?

    Edit (mal ganz oben...): satisfied schlägt im Grunde dasselbe vor, nur textbasiert. Habe ich zu spät begriffen, ist mir fast sympathischer. Ich lasse das hier trotzdem mal stehen, kann nicht schaden.. So wie ich das Array vollpumpen wollte, schlägt er vor, es einfach in einen Text zu schreiben, und das wär's ja schon.

    Hallo Timo,

    wie stehen die Sätze denn in den Texten? 1 Zeile = 1 Satz? Oder gehen die über mehrere Zeilen (auch zum Teil)?

    Mir schwebt gerade vor, das in Perl zu lösen, aber dazu wäre interessant, woran man überhaupt merkt, wann ein Satz endet. Neue Zeile? Fließtext? Satzzeichen?

    Mir schwebt vor, eine Datei zu öffnen (deren Namen in eine Variable packen), all ihre Zeilen/Sätze (Zeilen ist leichter) in ein Array zu tun, dann reihenweise in einer Schleife alle anderen Dateien in einen String zu laden (dabei fällt in jedem Durchgang eine Variable mit deren Namen an) und in einer zweiten Schleife jedes Element aus dem Array in dem String zu suchen. Paßt der String, wird er in ein zweites Array geschrieben, das 2 Dimensionen hat: 1. Feld ist der String, im zweiten steht ein Array, das alle Dateinamen sammelt, in denen der steht. Ist der String neu, kommt ein Element dazu, ist er schon im Array (Feld 1), kommt hinten der Dateiname dran.

    Diese Prozedur läuft ein mal über alle Dateien. Am Ende hast du eine Liste mit allen Strings, die mehrfach vorkommen und für jeden, in welchen Dateien das war.

    Das ist ein sehr grobes Brainstorming und hoffentlich nicht zu wirre beschrieben (außerdem denke ich manchmal um die Ecke und das ginge kürzer). Mich würde sogar reizen, das Script zu bauen, aber ich stehe zeitlich nicht so zur Verfügung, ich weiß nicht, wie eilig das ist. Aber das hier wäre meine erste Idee, vielleicht kommt von woanders noch ne bessere... :think:
     
  6. #5 Wolfgang, 19.10.2006
    Wolfgang

    Wolfgang Foren Gott

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

    Hier stellt sich mir die Frage, ob du den Unterschied selbst wissen willst, oder nur welche Dateien identisch (exakt gleich) sind.
    Im zweiten Fall genügt es ein md5sum File uber alle Dateien zu erstellen, und die Einträge auf Gleichheit auszuwerten.
    Das ist weit schneller.

    Gruß Wolfgang
     
Thema:

Eint Unixbefehl mit dem man viele Texdateien auf einmal miteinander vergleichen kann

Die Seite wird geladen...

Eint Unixbefehl mit dem man viele Texdateien auf einmal miteinander vergleichen kann - Ähnliche Themen

  1. Reihenfolge der crond Syslog einträge

    Reihenfolge der crond Syslog einträge: Hallo, bin an einer Fehlersuche dran und stell mir gerade folgende Frage. Was ist eigentlich zuerst da? Ein cron Logeintrag unter /var/log/cron...
  2. Node.js und Io.js bei der Linux Foundation vereint

    Node.js und Io.js bei der Linux Foundation vereint: Die Entwickler von Node.js und dem Fork Io.js schließen sich unter der Node.js Foundation wieder zusammen. Die Stiftung ist künftig bei der Linux...
  3. Solus erscheint mit Budgie 8.2 als Beta 2

    Solus erscheint mit Budgie 8.2 als Beta 2: Mit Solus veröffentlicht ein neues Betriebssystem seine zweite Beta-Version. Solus ist von Grund auf neu gebaut, bringt die eigene...
  4. Solus erscheint als Beta 2

    Solus erscheint als Beta 2: Mit Solus veröffentlicht ein neues Betriebssystem seine zweite Beta-Version. Solus ist von Grund auf neu gebaut, bringt die eigene...
  5. Qt-Bibliothek jetzt in der Qt Company vereint

    Qt-Bibliothek jetzt in der Qt Company vereint: Wie vor einigen Wochen angekündigt, hat Digia eine Tochterfirma gegründet, die das freie Qt-Projekt und das kommerzielle Qt-Geschäft unter einem...