Unterstützung bei Suchen und Ersetzen Regex
-
19-09-2019 - |
Frage
Ich habe eine Textdatei, und jede Zeile ist von der Form:
TAB WORD TAB PoS TAB FREQ #
Word PoS Freq
the Det 61847
of Prep 29391
and Conj 26817
a Det 21626
in Prep 18214
to Inf 16284
it Pron 10875
is Verb 9982
to Prep 9343
was Verb 9236
I Pron 8875
for Prep 8412
that Conj 7308
you Pron 6954
Würde einer von euch REGEX Assistenten hilft mir freundlich in die Worte aus der Datei zu isolieren? Ich werde einen Fund tun und ersetzen in TextPad, hoffentlich, und das wird das sein. Mehrere Suchen und ersetzt ist in Ordnung. Eine Sache: Beachten Sie, dass die Suche nach „Verb“ würde auch das Wort von aufdrehen „Verb“, nicht nur den Teil der Rede, so seien Sie vorsichtig. Am Ende möchte ich mit 1 Wort pro Zeile enden.
Vielen Dank!
Lösung
Ich denke, Microsoft Excel kann Ihnen helfen, dass eine bessere ...
Sie einfach den ganzen Text auf Excel kopieren und als Tabelle dann gehen formatiert werden und die entsprechenden Spaltenzellen für das Wort auswählen, kopieren Sie sie schließlich auf Editor.
Ich wette dies der einfachste Weg ist.
Wenn bei Excel speichert alle Werte in einer Spalte, in einer separaten Spalte Extrakt das Wort durch:
= Trim (LEFT (C1, MAXCHAR))
Andere Tipps
Sie könnten nur awk
verwenden, um die erste Spalte zu entfernen, wie in
awk '{print $1}' /path/to/filename
Weiter die erste Zeile von mit
awk 'NR!=1 {print $1}' /path/to/filename
Es gibt nicht wirklich keine Notwendigkeit, einen regulären Ausdruck für diesen Einsatz. Zum Beispiel können Sie cut
verwenden:
cut -f1 <inputfile
So etwas wie \s*([a-zA-z]+)\s*([a-zA-z]+)
würde das Wort und Po als Gruppen zurück. Sie können sie dann in der Anweisung ersetzen verwenden als $ 1 und $ 2 ausgeben, wie Sie wollen.
Wenn Sie nur das Wort Teil mögen, können Sie nur $ 1 in der ersetzen verwenden.