Назад | Перейти на главную страницу

Извлечь строку из столбца с помощью grep

У меня есть файл .txt на основе столбцов, и я хочу, чтобы grep выводил общее имя, и у меня возникли небольшие проблемы.

V   300223164711Z       01  unknown /C=UK/O=LMG/OU=server/CN=server/name=server/emailAddress=support@kam.org
V   300223170002Z       02  unknown /C=UK/O=LMF/OU=server/CN=test/name=server/emailAddress=support@kam.org
V   300223170935Z       03  unknown /C=UK/O=risk/OU=server/CN=risk/name=server/emailAddress=support@kam.org

Мой текущий вывод grep делает следующее:

tail -n +2 index.txt | grep "^V" | cut -d '/' -f 5 | nl -s ') '
     1) CN=test
     2) CN=risk

Я хочу, чтобы имя было выходным: «тест» или «риск». Каким был бы самый простой способ добиться этого?

sed должен быть одним из твоих друзей

echo CN=test | sed -e 's/CN=//'
test

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

awk -F\/ '$5~"test"|| $5~"risk" {gsub("CN=","",$5);print $5}'

Чтобы добавить номер строки, в которой вы найдете записи CN, вы можете использовать следующий код:

awk -F\/ '$5~"test"|| $5~"risk" {gsub("CN=","",$5);print NR") "$5 }'