2017-05-18 10 views
0

awkコマンドの使用方法は、000を私のタイムスタンプの下の列に追加または追加する必要があります。私は以下のコマンドを使用しようとしました。awkがCSVファイルに追加されます

head -n 10000001 ratings.csv | tail -n +2 | awk '{print $1 "000"}' >> ratings_1.csv 

データは期待通りです。

$ cat ratings.csv |wc -l 
20000264 
$ head ratings.csv 
userId,movieId,rating,timestamp 
1,2,3.5,1112486027 
1,29,3.5,1112484676 
1,32,3.5,1112484819 
1,47,3.5,1112484727 
1,50,3.5,1112484580 
1,112,3.5,1094785740 
1,151,4.0,1094785734 
1,223,4.0,1112485573 
1,253,4.0,1112484940 

私の予想出力は

1,2,3.5,1112486027000 
+0

あなたが追加したいですすべての行のためにそれは?ヘッダーの後の1行目のみ? – Inian

+3

あなたの予想される出力が、あなたが投稿した入力に対する期待される出力であることを確かめてください。たとえば、10行の入力があり、10行の出力が必要な場合は、その10行の出力を表示します。 –

+1

どのようにデータが「期待どおり」ではないのですか? 'echo 'のようにawkコマンドを分離した場合、1,2,3.5,1112486027' | awk '{print $ 1 "000"}' 'うまく動作します。私たちがここの底に到達するために必要なものがあります。 – jas

答えて

0
awk '{ if (NR > 1) { $1 = $1 "000" } print }' 

のようになります。たぶん、すべての行にifを実行しないと速くバージョンは次のようになります。

awk 'BEGIN { getline; print } { print $0 "000" }' 
+0

なぜ私はdownvotedになったのですか? –

+0

コマンドラインから、彼は1行ではなく2行を望んでいるように見えます。私の2つの例は、パイプラインに挿入されていれば動作します。 「慣用句」としては、例えば、慣用句のようなものはありません。私の例は冗長であまり秘密ではありません。だから、それは個人的な味の問題に沸き立つ。私のものはPythonのようなもので、あなたのものはPerlのもので、Richard W. Stevensは「書き込み専用言語」と呼ばれています。 getlineの使用に関しては、この文脈では安全です。 –

関連する問題