2017-01-12 1 views
-1

Я получаю данные в CSV-файл с сервера, который находится в ниже форматеНевозможно разобрать строку на основе критериев поиска, используя AWK

enter image description here

мне нужно разобрать только текст в формате XENuw81506 вместо всей линии

Я ниже команды AWK, чтобы отфильтровать данные

awk -F "\"*,\"*" '{print $3}' export.csv | awk '/XEN/'

который дает мне

XENuw81506 - JBoss HttpAdaptor JMXInvokerServlet is Accessible to 
XENux77290 - Multiple Red Hat JBoss Remote Arbitrary Code Execution 
XENvc71430 Create Parent Rule For PIDs which 

Я ожидаю мою утилиту, чтобы отфильтровать только

XENuw81506 
XENux77290 
XENvc71430 
+2

Не прикрепить изображение. Предоставление текстовых данных из входного файла. – anubhava

ответ

1
$ awk -F, '/XEN/{sub(/ .*/,"",$3); print $3}' file 

или

$ awk -F, '/XEN/{split($3,a," "); print a[1]}' file 
1

В вашей второй AWK, используйте $1

awk -F "\"*,\"*" '{print $3}' export.csv | awk {'print $1'} 
0

Ну, так как не было никаких испытательных данных в приемлемом формате, я не собираюсь возиться с FS с и такими, добавить адекватные один:

$ awk '{sub(/ .*/,"",$3); $0=$3} 1' export.csv 
XENuw81506 
XENux77290 
XENvc71430