无法使用awk根据搜索条件解析字符串

时间:2017-01-12 16:39:34

标签: bash csv unix awk sed

我从服务器获取csv文件中的数据,格式为

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 

3 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:1)

在你的第二个awk中,使用$1

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

答案 2 :(得分:0)

好吧,由于没有合理格式的测试数据,我不打算使用FS等等,添加一个足够的:

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