我有一个ascii数据文件,例如:
ifile.txt
2
3
2
3
4
5
6
4
我想在第6行之后将3乘以所有数字。所以outfile将是:
ofile.txt
2
3
2
3
4
15
18
12
我的算法/脚本是
awk '{if ($1<line 6); printf "%10.5f\n", $1}' ifile.txt > ofile.txt
awk '{if ($1>=line 6); printf "%10.5f\n", $1*3}' ifile.txt >> ofile.txt
答案 0 :(得分:2)
最简单的方法是:
awk 'NR > 6 { $1 *= 3 } 1' ifile.txt
当记录(行)编号NR
大于6时,将第一个字段乘以3。
awk程序的结构是condition { action }
,其中默认条件是 true ,默认操作是{ print }
,所以最后的1
是始终打印每一行的最短路径。