如何在 Unix 中格式化文件的数据?
How to format the data of a file in Unix?
我有一些这种形式的数据(3 列)存储在变量 ABC
:
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}"
但它不起作用。谁能看出问题出在哪里?
所以你有一个内容如下的文件:
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
Use at most max-args arguments per command line.
测试
$ 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
我有一些这种形式的数据(3 列)存储在变量 ABC
:
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}"
但它不起作用。谁能看出问题出在哪里?
所以你有一个内容如下的文件:
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
Use at most max-args arguments per command line.
测试
$ 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