17

Bourne Shellには、次のものがあります。

VALUES=`some command that returns multiple line values`

echo $VALUES

次のようになります:

"ONE"
"TWO"
"THREE"
"FOUR"

私はそれを次のように見せたいです:

"ONE" "TWO" "THREE" "FOUR"

誰か助けてもらえますか?

4

4 に答える 4

45

echo $VALUES | tr '\n' ' '

于 2010-01-20T16:34:52.823 に答える
2

別の方法として、コードを出力するだけでなく、それを変数に割り当て、最後にスプリアススペースを持たせたくない場合は、次のようにします。

$ 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
于 2014-05-01T15:20:40.193 に答える
1

受け入れられた解決策は私にはうまくいきませんでした(OS X Yosemiteで)。これは私が使用したものです:

echo -n $VALUES

于 2014-11-10T12:06:27.410 に答える
0

もう1つのオプションは、次を使用することです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'`"
于 2013-04-15T15:40:39.827 に答える