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!

War es hilfreich?

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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top