shell – 简洁便携的“join”在Unix命令行上

如何将多行连接成一行,使用新行字符的分隔符,避免尾随分隔符,并且可选地忽略空行?

例。考虑一个文本文件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"," -

相关文章

用的openwrt路由器,家里宽带申请了动态公网ip,为了方便把2...
#!/bin/bashcommand1&command2&wait从Shell脚本并行...
1.先查出MAMP下面集成的PHP版本cd/Applications/MAMP/bin/ph...
1、先输入locale-a,查看一下现在已安装的语言2、若不存在如...
BashPerlTclsyntaxdiff1.进制数表示Languagebinaryoctalhexa...
正常安装了k8s后,使用kubect工具后接的命令不能直接tab补全...