Assistenza Trova e sostituisci Regex
-
19-09-2019 - |
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!
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.