-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...上記のファイルでは、その後3列目を印刷したいと思います。

誰かがこれを手伝ってくれませんか?

私が直面して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=,か、単に使用できます。printfprint

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 に答える