gpt4 book ai didi

shell - Unix 命令行上简洁且可移植的 "join"

转载 作者:行者123 更新时间:2023-12-03 05:20:19 25 4
gpt4 key购买 nike

如何将多行连接成一行,并在换行符所在位置使用分隔符,并避免使用尾随分隔符,并且可以选择忽略空行?

示例。考虑一个文本文件 foo.txt,包含三行:

foo
bar
baz

所需的输出是:

foo,bar,baz

我现在使用的命令:

tr '\n' ',' <foo.txt |sed 's/,$//g'

理想情况下应该是这样的:

cat foo.txt |join ,

什么是:

  1. 最便携、简洁、可读的方式。
  2. 使用非标准 unix 工具的最简洁方式。

当然我可以写一些东西,或者只是使用别名。但我有兴趣了解这些选项。

最佳答案

也许有点令人惊讶,paste 是执行此操作的好方法:

paste -s -d","

这不会处理您提到的空行。为此,首先通过 grep 传输文本:

grep -v '^$' | paste -s -d"," -

关于shell - Unix 命令行上简洁且可移植的 "join",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8522851/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com