在 bourne shell 中,我有以下内容:
VALUES=`some command that returns multiple line values`
echo $VALUES
好像:
"ONE"
"TWO"
"THREE"
"FOUR"
我希望它看起来像:
"ONE" "TWO" "THREE" "FOUR"
任何人都可以帮忙吗?
在 bourne shell 中,我有以下内容:
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'`"