如何使用awk编辑列中的几行?

时间:2016-04-13 08:54:25

标签: shell awk

我有一个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

1 个答案:

答案 0 :(得分:2)

最简单的方法是:

awk 'NR > 6 { $1 *= 3 } 1' ifile.txt

当记录(行)编号NR大于6时,将第一个字段乘以3。

awk程序的结构是condition { action },其中默认条件是 true ,默认操作是{ print },所以最后的1是始终打印每一行的最短路径。