Bash: извлечение ячеек из выходных данных в формате таблицы

Я использую TreeTagger ( http://www.cis.uni-muenchen.de/~schmid/tools/TreeTagger/), чтобы извлечь существительные из текста. Моя проблема в том, что выходные данные отформатированы так:

word    pos     lemma

The     DT      the 
TreeTagger      NP      TreeTagger 
is      VBZ     be 
easy    JJ      easy 
to      TO      to 
use     VB      use 

по-видимому, нет возможности получить только существительные ("NP" и "NN"). С bash, как я могу получить ячейки в первом столбце, которые имеют "NP" или "NN" во втором столбце?

1 ответ

Решение

Вы можете использовать awk для этого:

awk '$2 ~ /^N[PN]$/{print $1}' file

TreeTagger

Regex /^N[PN]$/ будет соответствовать либо NP или же NN

Как справедливо прокомментировал @Cyrus ниже, вы можете использовать чередование в своем регулярном выражении как:

awk '$2 ~ /^(NP|NN)$/ {print $1}' file
Другие вопросы по тегам