我有一个包含此格式数据的文件(只有一行)
1 2 3 5 7 9
我想将此更改为
1
2
3
5
7
9
修改
示例输入有6个数字。但实际数据可能有1000个数字。
我可以将文件复制到excel中并进行转置。但是可以使用awk
或sed
答案 0 :(得分:4)
kent$ (master|✔) echo "1 2 3 5 7 9"|tr ' ' '\n'
1
2
3
5
7
9
答案 1 :(得分:3)
您可以轻松使用sed
:
echo 1 2 3 5 7 9 | sed 's/ /\n/g'
或者如果你把它全部放在一个文件中:
sed 's/ /\n/g' < filename
答案 2 :(得分:3)
使用xargs。
echo 1 2 3 5 7 9 |xargs -n1
或者如果你把它全部放在一个文件中:
xargs -n1 < file
答案 3 :(得分:2)
我用
创建了一个包含1M个数字的测试文件awk 'BEGIN{for(i = 0; i < 1000000; i++) {printf "%d ", i} }' > t.txt
结果:
$ time tr ' ' '\n' <t.txt | tail -n 2
999998
999999
real 0m0.018s
$ time sed 's/ /\n/g' t.txt | tail -n 2
999998
999999
real 0m0.223s
$ time awk '{for (i = 1; i <= NF; i++) print $i}' t.txt | tail -n 2
999998
999999
real 0m0.400s
因此tr
是最快的方法。
答案 4 :(得分:1)
...
awk 1 RS='[[:space:]]+' file