2009-10-06 3 views
1

У меня есть текстовый файл, каждая строка имеет вид:Помощь с Найти и Заменить Regex

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 

Would один из вас регулярных выражений мастера любезно помочь мне в изоляции СЛОВА из файла? Я надеюсь, что найду и заменим TextPad, и это будет так. Многократная находка и замена отлично. Одно дело: обратите внимание, что поиск «глагола» также приведет к появлению СЛОВА «глагола», а не только к части речи, поэтому будьте осторожны. В конце концов я хочу, чтобы в итоге было 1 слово в строке.

Большое спасибо!

ответ

1

Я думаю, что Microsoft Excel может помочь вам, что лучше ...

Просто скопируйте весь текст в Excel, и он будет отформатирован в виде таблицы, то идти вперед и выбирать соответствующие ячейки столбцов для слова, наконец, скопировать их на блокноте.

Держу пари, что это самый простой путь.

Если в случае первенствовать сохраняет все значения в одном столбце, в отдельной колонке извлечь слово по:

= Обрезка (ЛЕВЫЙ (C1, maxchar))

+0

Хорошая идея ... Вы часто забывают самые простые инструменты! – cksubs

1

Вы могли бы просто использовать awk, чтобы удалить первую колонку, как в

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

Пропустить первую строку с помощью

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

Там не совсем никакой необходимости использовать регулярные выражения для этого. Например, вы можете использовать cut:

cut -f1 <inputfile 
1

\s*([a-zA-z]+)\s*([a-zA-z]+) Что-то вроде бы вернуть слово и кассира- групп. Затем вы можете использовать их в операторе replace как $ 1 и $ 2 для вывода, как вы хотите.

Если вам нужна только часть WORD, вы можете просто использовать $ 1 взамен.

Смежные вопросы