Assistance à rechercher et remplacer Regex
-
19-09-2019 - |
Question
J'ai un fichier texte, et chaque ligne est de la forme:
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
L'un de vous me aider les sorciers regex gentiment à isoler les mots du fichier? Je vais faire une recherche et de remplacement dans TextPad, espérons-le, et ce sera cela. Multiple trouver et remplace est très bien. Une chose: avis que la recherche de « verbe » tournerait aussi le mot de « verbe », non seulement la partie de la parole, alors soyez très vigilant. En fin de compte, je veux finir avec 1 mot par ligne.
Merci beaucoup!
La solution
Je pense que Microsoft Excel peut vous aider à mieux que ...
Il suffit de copier le texte intégral sur Excel et il sera formaté comme table, alors allez-y et sélectionnez les cellules de la colonne appropriées pour le mot, enfin les copier sur le bloc-notes.
Je parie que c'est le chemin le plus facile.
Si dans le cas Excel stocke toutes les valeurs dans une seule colonne, dans une colonne séparée extraire le mot par:
= garniture (LEFT (C1, maxchar))
Autres conseils
Vous pouvez simplement utiliser awk
pour enlever la première colonne, comme dans
awk '{print $1}' /path/to/filename
Passer la première ligne en utilisant
awk 'NR!=1 {print $1}' /path/to/filename
Il n'y a pas vraiment besoin d'utiliser une expression régulière pour cela. Par exemple, vous pouvez utiliser cut
:
cut -f1 <inputfile
Quelque chose comme \s*([a-zA-z]+)\s*([a-zA-z]+)
retournerait le mot et PoS en tant que groupes. Vous pouvez ensuite les utiliser dans la déclaration de remplacer 1 $ et 2 $ à la sortie que vous voulez.
Si vous voulez que la partie Word, vous pouvez simplement utiliser 1 $ dans le remplacer.