如何将多行连接成一行,使用新行字符的分隔符,避免尾随分隔符,并且可选地忽略空行?
例。考虑一个文本文件foo.txt,有三行:
foo bar baz
所需的输出是:
foo,bar,baz
我现在使用的命令:
tr '\n' ',' <foo.txt |sed 's/,$//g'
理想情况下会是这样的:
cat foo.txt |join,
什么是:
>最便携,简洁,可读的方式。
>最简洁的方式使用非标准的unix工具。
当然我可以写东西,或者只是使用别名。但我有兴趣知道的选择。
也许有点令人惊讶的是,粘贴是一个很好的方法来做到这一点:
paste -s -d","
这不会处理你提到的空行。为此,通过grep管道您的文本,第一:
grep -v '^$' | paste -s -d"," -