如何将行连接成一个字符串

She*_*hep 7 bash shell

我在bash中有一个函数,它向stdout输出一串行.我想将它们组合成一行,它们之间有一些分隔符.

之前:

one 
two 
three 
Run Code Online (Sandbox Code Playgroud)

后:

one:two:three   
Run Code Online (Sandbox Code Playgroud)

有什么简单的方法可以做到这一点?

Dae*_*yth 12

使用 paste

$ echo -e 'one\ntwo\nthree' | paste -s -d':'
one:two:three
Run Code Online (Sandbox Code Playgroud)

  • 在 OSX 上,添加额外的破折号:``$ echo -e 'one\ntwo\nthird' | 粘贴 -s -d':' -`` (4认同)
  • 使用“tr”似乎更简单,因为它不会“延迟”不同的操作系统 (2认同)

小智 7

而另一种方式:

cat file | tr -s "\n" ":"
Run Code Online (Sandbox Code Playgroud)