我有一个数据文件,每列有2列和500行。要访问第二列的第5行,我这样做:
awk 'FNR == 5 {print $2}'
并修改第二列,比如乘以0.8,我这样做:
awk '{print $2*0.8}' inputfile
如果我想乘第二列,比如从第1行到第10行,我该如何修改awk命令?
答案 0 :(得分: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 - 10行的所有第二列:
awk -F, 'BEGIN{OFS=","; result=1} (NR<=10){result *= $2} END{print result}' sample.csv
输出:
20
-F,
表示文件分隔符为逗号
OFS=","
是输出文件分隔符
if-else
检查条件