Domanda

Ho un file di testo e ogni riga è della forma:

TAB PAROLA 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

Qualcuno di voi maghi regex gentilmente aiutare a isolare i PAROLE dal file? Farò un trovare e sostituire in TextPad, si spera, e che sarà così. trovare più e sostituisce va bene. Una cosa: si noti che la ricerca di "verbo" Sarebbe anche alzare la parola di "verbo", non solo la parte del discorso, quindi fate attenzione. Alla fine voglio finire con 1 parola per riga.

Grazie mille!

È stato utile?

Soluzione

Credo che Microsoft Excel può aiutare che meglio ...

Basta copiare l'intero testo su Excel e sarà formattato come tavolo, poi andare avanti e selezionare le celle della colonna appropriate per la parola, infine copiarli sul blocco note.

Scommetto che questa è la via più facile.

Se nel caso in cui eccellere memorizza tutti i valori in una singola colonna, in una colonna separata estrarre la parola da:

= Trim (LEFT (C1, maxchar))

Altri suggerimenti

Si potrebbe utilizzare awk per rimuovere la prima colonna, come in

awk '{print $1}' /path/to/filename

Salta la prima linea utilizzando

awk 'NR!=1 {print $1}' /path/to/filename

Non c'è davvero alcun bisogno di usare un'espressione regolare per questo. Ad esempio, è possibile utilizzare cut:

cut -f1 <inputfile

Qualcosa di simile \s*([a-zA-z]+)\s*([a-zA-z]+) restituirebbe la parola e PoS come gruppi. È quindi possibile utilizzare nella dichiarazione sostituire da $ 1 e $ 2 a uscita come si desidera.

Se solo si desidera che la PAROLA parte si può semplicemente usare $ 1 nella sostituzione.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top