我需要什么:
假设我有两个命令,A
和 B
,每个命令都返回一个单行字符串(即一个没有换行符的字符串,除了可能的 1 at最后)。我需要一个命令(或管道命令序列)C
将命令 A
和 B
的输出连接在同一行并插入 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/