我想将多行的一列转换为一行:
例子 :
1
1
1
1
1
2
2
2
3
3
4
而且我要 :
11111222334
有什么建议吗?
答案1
粘贴:
$ paste -s -d "" file
11111222334
将所有行压缩在一起,没有分隔符。
或者这些解决方案甚至删除尾随换行符
perl -pe chomp file
awk -v ORS="" 1 file
答案2
您可以使用以下命令删除所有换行符tr
:
tr -d \\n <infile
请注意,输出中没有尾随换行符,因此,如果需要(例如重定向到另一个文件):
{ tr -d \\n <infile; printf \\n; } >outfile
相反,如果您需要用空格分隔字段,则可以运行:
row=$(tr \\n \ <infile)
printf %s\\n "${row%?}" >outfile
尽管paste
这里真的很闪耀...
答案3
您还可以尝试回显命令并将输出发送到新文件。
$ echo $(cat file) >> rows.txt
为了防止每行之间出现空格,您可以在同一行中使用 sed
$ echo $(cat file) | sed 's/ //g' >> rows.txt