我有一个像这样的文件
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++}'
答案 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
然后打印它,您可以保留格式。