更换 (换行)bash 中带有空格

问题描述 投票:0回答:2

我正在从数据库读取一些 sql 查询到变量中,它包含换行符( )。我想更换 (新行)有空格。我尝试了互联网上提供的解决方案,但未能成功实现我想要的。这是尝试过的:

strr="my\nname\nis\nxxxx";
nw_strr=`echo $strr | tr '\n' ' '`;
echo $nw_strr;

我想要的输出是“我的名字是xxxx”,但我得到的是“我的名字是xxxx” 姓名 是 xxxx”。我也尝试了互联网上提供的其他解决方案,但没有运气:

nw_strr=`echo $strr | sed ':a;N;$!ba;s/\n/ /g'`;

我在做什么吗?

bash sed tr
2个回答
28
投票

使用 bash:

用空格替换所有换行符:

nw_strr="${strr//$'\n'/ }"

将所有字符串

\n
替换为空格:

nw_strr="${strr//\\n/ }"

0
投票

如果您想继续使用

pipes
,您可以这样做:

string_with_spaces=$(echo "$string_with_newlines" | tr '\n' ' ')

来源

© www.soinside.com 2019 - 2024. All rights reserved.