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,,
行的列发生了变化。
答案 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