2013-06-05 40 views
6

BeispielNotepad ++ prüfen doppelte Zeilen komplexe

40000 + Linien mit guids wie folgt aus:

GUID: 0981723409871243 

Durchsuchen Sie alle GUID für Duplikate

Beispiel:

GUID: 124432408213 
GUID: 08917234071423 
GUID: 0189742381 
GUID: 08917234071423 
GUID: 0817423423 
GUID: 124432408213 

Ich habe TextFX und vergleichen, aber wie würde ich das Teil finden sich 2 124432408213 und 2 08917234071423

aus 40.000 Zeilen mit möglichen Dubletten kippe ich sie leicht erkennen, ich brauche eine Möglichkeit, Duplikate zu finden.

Es wäre etwas wie GUID: "Text nach GUID suchen" nächste Zeile dann weiter für jede GUID suchen ... Ich könnte ein benutzerdefiniertes Programm schreiben, das dies tun kann, aber ... versuchen zu vermeiden, zu tun gerade diese TextFX ist ziemlich mächtig keine Möglichkeit zu sehen, so etwas zu tun ...

ich ein wenig mehr Infos hier Beispiel hinzufügen sollte:

[block1] guid: ???? mehr Infos: ??? [/ block1]

dies ist, wie jeder Block formatiert ist ..

Antwort

3

Verwenden TextFX die Eingangsleitungen zu sortieren und Duplikate halten. Als nächstes tun Suche einen regulären Ausdruck, Lesezeichen Linie im Mark Registerkarte Einstellung. Der Suchtext sollte ^(GUID:\s*\d+\r\n)\1 sein, dann klicken Sie auf Alle markieren **. Als nächstes verwenden Menü =>Suche =>Lesezeichen =>entfernen nicht markierten Linien alles außer den Duplikate zu entfernen, oder verwenden Sie Menü =>Suche =>Lesezeichen =>Kopieren Markiert Zeilen und fügen Sie die Linien wo gewünscht. Wenn vier oder mehr identische Zeilen dann die oben für jedes Paar mit einem Eintrag beenden kann, eine andere TextFX Art zu entfernen Duplikate sollten den Überschuss entfernen.

Für den [block1] guid: ???? more info: ??? [/block1] Fall der reguläre Ausdruck ist komplizierter, aber ^(\[block1\] guid:\s*\d+ more info:\s*\d+ \[/block1\]\r\n)\1 Funde und markiert die Duplikate in:

[block1] guid: 1234 more info: 5678 [/block1] 
[block1] guid: 1235 more info: 5678 [/block1] 
[block1] guid: 1235 more info: 5678 [/block1] 
[block1] guid: 1236 more info: 5678 [/block1] 
[block1] guid: 1236 more info: 5678 [/block1] 

Unter Linux oder ähnlich einem Befehl wie sort -c inputFileName | grep -v "^\s*1\s" oder sort inputFileName | unic -c | grep -v "^\s*1\s" oder sort inputFileName | uniq -d sollte genau je nach Arbeit, die Befehle und Optionen sind verfügbar.

+0

Es ist leider viel komplizierter ... [UNIT] GUID: einzige, was benötigt dup Check ... Name: ?? Datei: ??? EinheitTyp: ??? Unbekannt: ?? [/ UNIT] – user2455808

+0

@ user2455808 Also, was ist Ihre eigentliche Frage? Wenn es komplizierter ist, dann zeigen Sie einige tatsächliche Daten und die erforderliche Ausgabe. Erklären Sie klar, welche Bits überprüft werden müssen und welche Bits ignoriert werden können. – AdrianHHH

+0

Das ist in Ordnung Ich habe stattdessen ein Programm geschrieben ... Sie haben wahrscheinlich recht und würden das tun, was ich brauche, aber ich bin überhaupt nicht vertraut mit Linux-basierten Befehlen: (... – user2455808

11

Obwohl meine Antwort kann man nicht von jetzt helfen ... Kopieren Sie Ihre Linien in 2 Nachrichten Tabs, dann TextFX verwenden, um Art Registerkarte 1 und einzigartige Art Registerkarte 2. Dann Registerkarte bewegen 2 auf andere Ansicht zu duplizieren, schließlich Verwenden Sie Vergleichen.

+0

Einfacher arbeitete für mich –

+0

Dieser Ansatz funktionierte gut für mich. –