通过常量转换数据

时间:2015-05-06 14:06:23

标签: awk

我有一个像这样的文件

3 4 5 6 7 1
4 5 4 4 4 4 
2 2 3 3 2 1

我希望用常数(例如10)将每个数据点复用以得到以下输出

30 40 50 60 70 10
40 50 40 40 40 40
20 20 30 30 20 10

我一直试图这样做但没有成功

awk '{i=1; while (i<=NF) print $i*10; i++}' 

1 个答案:

答案 0 :(得分:2)

您正在使用while循环,而简单的for就足够了:

$ awk '{for (i=1; i<=NF; i++) $i*=10}1' file
30 40 50 60 70 10
40 50 40 40 40 40
20 20 30 30 20 10

while需要完成条件,而您没有提供任何结果。此外,如果要执行的循环数量是固定数字,最好只使用for

请注意,您说的是print,因此每个字段都会打印在不同的行中。通过替换它们中的每一个并使用1然后打印它,您可以保留格式。