Antworten in heruntergeladenen E-Mails entfernen (z. B. nicht aufeinander folgende doppelte Sätze aus der TXT-Datei)

391
Jeremy

Hallo Experten und Mitlerner!

Ich habe Dutzende von Textdateien, die monatliche Archive eines Listservs enthalten. Ich versuche, Antworten in Anführungszeichen zu entfernen bzw. zu löschen, sodass jede Nachricht nur einmal in allen Dateien angezeigt wird. Die meisten Benutzer der Liste verwenden kein Inline-Quoting, daher ist es hilfreich! Ich habe die Message ID, In-Reply-To und alle Header-Informationen, weiß aber, dass dies eine schwierige Aufgabe ist.

Die Sache wird dadurch kompliziert, dass viele E-Mail-Clients mit all ihren verschiedenen Systemen für den Umgang mit Antworten verwendet werden. Manchmal kommen die zitierten E-Mails mit ">" am Anfang der Zeile (was ich bereits entfernen konnte), einige fügen Absatzbrüche ein (scheinbar zufällig?), Andere verwenden "--- Original Message ---" oder " PersonZ schreibt / schreibt: "und natürlich gibt es kein Standardende" Ende ", um das Ende der Antwort zu markieren.

Ich habe seit Tagen nach einer Regex-Lösung und Testmöglichkeiten gesucht und nichts gefunden, was funktioniert, ohne die Zeilen zu sortieren (dh die Lösungen erfordern alle aufeinanderfolgende Duplikate). Hier ist ein Beispiel für eine Lösung, die wirklich nahe ist und die eine neue Zeile darstellt und diese sortiert - das Sortieren jedoch den Zweck des Projekts missachtet (semantische Analyse).

Finden Sie doppelte Ausdrücke - jedes Werkzeug oder Regex

Hier ist eine andere Lösung, die auch nahe ist, aber es muss vom Anfang einer Zeile aus gesucht werden. In meiner Situation funktioniert das nicht, weil verschiedene E-Mail-Clients Absätze innerhalb der Sätze einfügen.

https://stackoverflow.com/questions/32660532/remove-delete-all-duplicate-lines

Ich bin in einer Win10 x64-Desktopumgebung. Ich bin etwas neu in Regex. Ich habe einfache FNR (Suchen und Ersetzen von Codeplex, GrepWin und TextCrawler Free) verwendet, und ich bin offen für andere Softwarelösungen (oder Methoden). Bei Bedarf kann ich herausfinden, wie man mit xammp PHP-Befehle ausführt. Mit anderen Worten, der gesamte Prozess war eine Lernerfahrung, daher bin ich gerne weiter.

BEARBEITEN: Wenn Sie sich ein Beispiel für ein Mock-Up ansehen möchten - mit einer Mock-Regex, von der ich weiß, dass sie nicht funktioniert und nicht damit gerechnet hat - schauen Sie hier: https://regex101.com/r/FmAMH5/1

Entschuldigung für die Länge, aber ich wollte sofort die benötigten Informationen bereitstellen.

Vielen Dank, Jeremy

0
Für jemanden wie mich, der mit Regex ein wenig vertraut ist, aber kein Experte ist, müsste ich besser verstehen (oder einige bessere Beispiele sehen), was Sie mit "Text" -Dateien anfangen und was die erwarteten Ergebnisse sein sollen . Es bedeutet also, mehr als ein Beispiel für "Vorher" und "Voraus" zu beinhalten, da es Fälle gibt, in denen die Angelegenheit komplizierter ist. Dann kann es so sein. Ich könnte Ihnen vielleicht helfen oder einen Ausgangspunkt für diesen Teil geben waren mir klarer. Pimp Juice IT vor 6 Jahren 1
@ Spittin'IT Danke für die Anfrage. Die Datei variiert sehr stark, weshalb ich versucht habe, einen narrativen Überblick zu geben. Ich habe in meinem Edit auf regex101 ein sehr, sehr schnelles Beispiel mit einer Regex, von der ich weiß, dass sie nicht funktioniert, geworfen wurde (und die nicht als Lösung gedacht ist). Ich möchte nur, dass die wiederholten Textzeichenfolgen identifiziert werden, damit ich sie entfernen kann - wie wir das konzeptualisieren (ob durch Kopfzeileninformationen oder das Nachdenken über diese Sätze als nicht aufeinanderfolgende, sich wiederholende Zeichenfolgen) hängt davon ab, was möglich ist. Ich kann die Header und E-Mail-Signaturen problemlos entfernen - ich bin jetzt besorgt über die zitierten Antworten / sich wiederholenden Inhalte. Jeremy vor 6 Jahren 0
Ich glaube nicht, dass Regex das richtige Werkzeug für diesen Job ist. Klingt nach etwas AWK (in Kombination mit etwas Regex, das innerhalb von AWK verwendet wird) wäre gut. Es ist jedoch kein einfaches Problem, und die Lösung wird kein Einzeiler sein ... Wouter vor 6 Jahren 0
@Wouter Ich habe mir vor ein paar Tagen bei awk umgesehen, etwas hat noch keine Lösung gefunden. Und du hast recht, ich würde keinen Einzeiler erwarten. Ich verstehe sicherlich die Komplexität meiner Frage und habe bisher rund zehn Stunden damit verbracht, zu versuchen, sie herauszufinden. Trotzdem bin ich hoffnungsvoll. Jeremy vor 6 Jahren 0
@ McDonald's Hat mein Beispiel geholfen, oder hat es das Problem nur getrübt? In jedem Fall danke. Jeremy vor 6 Jahren 0

0 Antworten auf die Frage