変数からボーンシェルのラインブレークを取り外します
-
21-09-2019 - |
質問
ボーンシェルには、次のことがあります。
VALUES=`some command that returns multiple line values`
echo $VALUES
見た目:
"ONE"
"TWO"
"THREE"
"FOUR"
次のように見えたい:
"ONE" "TWO" "THREE" "FOUR"
誰かが助けることができますか?
解決
echo $VALUES | tr '\n' ' '
他のヒント
別の方法は、コードを印刷するだけでなく、変数に割り当て、最後に偽のスペースがない場合は次の方法です。
$ var=$(tail -1 /etc/passwd; tail -1 /etc/passwd)
$ echo "$var"
apache:x:48:48:Apache:/var/www:/sbin/nologin
apache:x:48:48:Apache:/var/www:/sbin/nologin
$ var=$(echo $var)
$ echo "$var"
apache:x:48:48:Apache:/var/www:/sbin/nologin apache:x:48:48:Apache:/var/www:/sbin/nologin
受け入れられたソリューションは私にとってはうまくいきませんでした(OS X Yosemiteで)。これが私が使用したものです:
echo -n $VALUES
別のオプションが使用されています xargs
(ただし、最終的な新しいラインを保持しています - 可能なトレイルスペースを使用する代わりに tr
):
echo $VALUES | xargs
printf '%s\n' 1 2 3 4 5 | xargs
@yozloy:脱出した文字列を使用して渡す方法 <<<
tr -d '\n' <<< "`printf '%b' 'a line with line feed \n'`"
所属していません StackOverflow