2017-09-19 7 views
1

私は各列に2列と500行のデータファイルを持っています。私はこれを行う、awkはデータファイルの特定の行に変更します

awk 'FNR == 5 {print $2}' 

、2番目の列を変更するには、0.8によって乗算言う::第二カラムの5行にアクセスするには、私はこれを行う

awk '{print $2*0.8}' inputfile 

私は2番目の列を乗算したい場合は、 1行目から10行目までawkコマンドを変更するには?

+0

[編集]あなたの質問に簡潔で、テスト可能なsamを含める入力と予想される出力。 –

答えて

2

sample.csv:

line1,1 
line2,4 
line3,1 
line4,1 
line5,5 
line6,1 
line7,1 
line8,1 
line9,1 
line10,1 
line11,1 
line12,1 

あなたの説明は私の理解に基づいて、非常に明確ではありません。

1)ラインの1- 10から値を掛ける場合:

awk -F, 'BEGIN{OFS=","}{if(NR<=10){print $1,$2*0.8 }else{print $0}}' sample.csv 

出力:

line1,0.8 
line2,3.2 
line3,0.8 
line4,0.8 
line5,4 
line6,0.8 
line7,0.8 
line8,0.8 
line9,0.8 
line10,0.8 
line11,1 
line12,1 

2)ライン1からの全ての第2の列を乗算 - 10:

awk -F, 'BEGIN{OFS=","; result=1} (NR<=10){result *= $2} END{print result}' sample.csv 

出力:出力ファイルセパレータ if-elseチェック条件

20 

-F,ファイルセパレータはカンマ OFS=","であることを意味しています

+0

ありがとう!あなたの答えは1)私が探していたものです。 – user3389597

関連する問題