regex - 在 bash 中连接两个没有换行符的命令的输出

标签 regex bash sed pipe concatenation

我需要什么:

假设我有两个命令,AB,每个命令都返回一个单行字符串(即一个没有换行符的字符串,除了可能的 1 at最后)。我需要一个命令(或管道命令序列)C 将命令 AB 的输出连接在同一行并插入 1 个空格他们之间的性格。

它应该如何工作的示例:

例如,假设命令A 的输出是字符串 之间:

"The quick"

并且假设命令 B 的输出是引号之间的字符串:

"brown fox"

然后我希望命令 C 的输出是字符串这里的引号之间:

"The quick brown fox"

我尝试过的最佳解决方案:

在尝试自己找出 C 时,似乎下面的管道命令序列应该可以工作:

{ echo "The quick" ; echo "brown fox" ; } | xargs -I{} echo {} | sed 's/\n//'

不幸的是,这个命令的输出是

The quick
brown fox

最佳答案

你可以使用tr:

{ echo "The quick"; echo "brown fox"; } | tr "\n" " "

或使用 sed:

{ echo "The quick"; echo "brown fox"; } | sed ':a;N;s/\n/ /;ba'

输出:

The quick brown fox 

关于regex - 在 bash 中连接两个没有换行符的命令的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20871534/

相关文章:

regex - hive 中的正则表达式

regex - 获取文件名的正则表达式

linux - bash shell 脚本显示段错误

linux - 我应该如何在 Yocto 生成的 rootfs 上 sed 文件?

java - 使用 sed 获取任何单词和最后一个单词

shell - 在 CSV 文件上使用相当于 SQL group by 的 shell 实用程序

java - 从正则表达式中获取字符串中的字符串

python - 正则表达式提取具有不同长度和特殊字符的所有数字

ruby-on-rails - 在 bash 中执行 rake 命令

python - Crontab在docker上运行但未调度