查询Awk脚本

时间:2012-12-13 04:41:58

标签: awk

780745,0,3,0,sto_un_os_fast,daily,lonrb08390,lonrs08841,1355250030,0000015139,1355265169
783333,0,1,,sto_un_os_fast,daily,lonrb08390,lonrs08842,1355336488,0000032370,0000000000
778143,0,3,0,sto_un_os_fast,daily,lonrb08390,lonrs08841,1355163652,0000003967,1355167619
784864,0,3,0,sto_un_os_fast,daily,lonrb07366,lonrs08842,1355351424,0000001475,1355352899

在上面的文件中,我想打印lonrb...&之后的第3栏。

有人可以帮我这个吗?

我在awk '{print $6, $9}'面临的问题是783333,0,1,,行的列发生了变化。

2 个答案:

答案 0 :(得分:1)

嗯 - 您应该可以通过指定“,”作为字段分隔符来完成此操作。

awk -F, '{print $7, $10} 

答案 1 :(得分:0)

除了看起来像第7列和第10列这一事实外,我不确定问题是什么:

awk -F, '{ print $7, $10 }'

783333,0,1,,行中,1之后和sto_un_os_fast之前有一个空字段,但空字段仍被视为字段。

lonrb08390 0000015139
lonrb08390 0000032370
lonrb08390 0000003967
lonrb07366 0000001475

如果您希望用逗号分隔输出字段,则可以使用OFS=,或仅使用printf代替print

awk -F, 'BEGIN { OFS = "," } { print $7, $10 }'
awk -F, '{ printf "%s,%s\n", $7, $10 }'

这两个产生输出:

lonrb08390,0000015139
lonrb08390,0000032370
lonrb08390,0000003967
lonrb07366,0000001475