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