如何在Unix中格式化文件的数据?

时间:2015-02-04 16:35:07

标签: unix dataformat

我在变量ABC中存储了这种形式的数据(3列):

d1  d2 d3 
d4 d5 d6 
d7 d8 d9 
d10 

我想用这种形式(4列)格式化它:

d1 d2 d3 d4 
d5 d6 d7 d8
d9 d10

我尝试过这样的事情:

printf "%8.3e %8.3e %8.3e %8.3e\n" "${ABC}"

但它不起作用。谁能看到问题所在?

1 个答案:

答案 0 :(得分:1)

所以你有一个包含这样内容的文件:

d1 d2 d3
d4 d5 d6
d7 d8 d9
d10

并且您想将其转换为

d1 d2 d3 d4
d5 d6 d7 d8
d9 d10

即,将其从每行3列转换为4。

为此,您可以使用xargs之类的:

xargs -n 4 < file

或者,如果数据在变量中:

xargs -n 4 <<< "$variable"

来自man xargs

  

-n max-args, - max-args = max-args

     

每个命令行最多使用max-args参数。

测试

$ cat a
1 2 3
4 5 6
7 8 9
10
$ xargs -n 4 < a
1 2 3 4
5 6 7 8
9 10