注意:我使用的是 OS X
我有一个数据文件,它只是一长串数字,每个条目都在单独的一行:
23
28
26
14
...
我需要重新排列第 37 行记录/字段中的数据:
23 28 26 14 1 2 3 4 5 6 7 8 9 2 4 5 6 9 4 8 7 6 3 2 5 9 4 1 2 5 7 8 9 4 6 1 2
5 8 6 4 3 5 23 28 26 14 1 2 3 4 5 6 7 8 9 2 4 5 6 9 4 8 7 6 3 2 5 9 4 1 2 5 7
...
这是我尝试过的代码:
awk '{
for(i=1;i<=NF;i+=1) {
if(i%37 != 0) printf $i" ";
else printf "$i\n"
}
}'
input.txt > output.txt
第一个printf $i" "
似乎有效,但条件似乎有问题,因为无论我告诉它在else
语句中打印什么,它都不会打印它。也许只是语法疏忽??
有趣的是,当我刚刚运行时:
awk '{for(i=1;i<=NF;i+=1) printf $i" "}' input.txt > output.txt
结果文件将一些数据放入 37 条记录长度的行中,但有些仍然更长……这可能是数据中某些伪影的结果吗?(数据已通过许多排序/组织功能运行。)