必要なもの:
A
とB
の2つのコマンドがあり、それぞれが単一行の文字列(つまり、末尾に1を除いて改行文字のない文字列)を返すとします。コマンドC
とA
の出力を同じ行に連結し、それらの間に1つのスペース文字を挿入するコマンド(またはパイプコマンドのシーケンス)B
が必要です。
動作方法の例:
たとえば、コマンドA
の出力が文字列betweenの引用符であるとします:
"The quick"
コマンドB
の出力が文字列betweenの引用符であると仮定します。
"brown fox"
次に、コマンドの出力C
を、引用符で囲まれた文字列betweenにします。
"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
echo "$(A)" "$(B)"
A
もB
も複数行を出力しないと仮定して動作するはずです。
$ echo "$(echo "The quick")" "$(echo "brown fox")"
The quick brown fox
$ commandA () { echo "The quick"; }
$ commandB () { echo "brown fox"; }
$ x="$(commandA) $(commandB)"
$ echo "$x"
The quick brown fox
私は別の簡単な例で解決策を説明しようとします
次のコマンドの出力を連結する必要があります。
"pwd"および "ls"
echo "$(pwd)$(ls)";
出力:2つの連結された文字列