在 Bourne Shell 中从变量中删除换行符

发布于 2024-08-18 08:37:45 字数 281 浏览 9 评论 0原文

在 bourne shell 中,我有以下内容:

VALUES=`some command that returns multiple line values`

echo $VALUES

看起来像:

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

我希望它看起来像:

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

有人能帮忙吗?

In bourne shell I have the following:

VALUES=`some command that returns multiple line values`

echo $VALUES

Looks like:

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

I would like it to look like:

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

Can anyone help?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

美人如玉 2024-08-25 08:37:45

回显 $VALUES | tr '\n' '

echo $VALUES | tr '\n' ' '

机场等船 2024-08-25 08:37:45

另一种方法,如果您不仅想打印出代码,还想将其分配给变量,并且末尾没有虚假空格:

$ 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

Another method, if you want to not just print out your code but assign it to a variable, and not have a spurious space at the end:

$ 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
我不咬妳我踢妳 2024-08-25 08:37:45

接受的解决方案对我不起作用(在 OS X Yosemite 上)。这就是我使用的:

echo -n $VALUES

The accepted solution didn't work for me (on OS X Yosemite). This is what I used:

echo -n $VALUES

快乐很简单 2024-08-25 08:37:45

另一种选择是使用 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'`"

Another option is using xargs (which keeps a final newline though - instead of a possible trailing space using tr):

echo $VALUES | xargs
printf '%s\n' 1 2 3 4 5 | xargs

@yozloy: how to pass escaped string using <<<

tr -d '\n' <<< "`printf '%b' 'a line with line feed \n'`"
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文