-2
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...在那之后打印 & 第三列。

有人可以帮我吗?

我面临的问题awk '{print $6, $9}'是列会因783333,0,1,,行而变化。

4

2 回答 2

1

嗯 - 您应该能够通过指定“,”作为字段分隔符来做到这一点。

awk -F, '{print $7, $10} 
于 2012-12-13T04:47:44.433 回答
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
于 2012-12-13T04:46:30.580 回答