在bash变量中用下划线'_'替换换行符

Ric*_*k T 0 regex bash awk grep sed

我知道我可以使用 sed(在文件中)用空格替换换行符

sed ':a;N;$!ba;s/\n/ /g' file.txt
Run Code Online (Sandbox Code Playgroud)

但是如何在 bash 变量中用下划线“_”替换换行符

我试图用一个空格替换它来测试它,但这不起作用,看看我在下面使用了什么。

#gets rid of newline and replace with space to get station name on one line
station=$(
<<<"${station_tmp}"\
echo $station_tmp | sed ':a;N;$!ba;s/\n/ /g' 
)
Run Code Online (Sandbox Code Playgroud)

变量 station_tmp 看起来像:

1st line
2nd line
3rd line
Run Code Online (Sandbox Code Playgroud)

我正在尝试用下划线“_”替换换行符,并使其看起来像:

1st line_2nd line_3rd line
Run Code Online (Sandbox Code Playgroud)

Ps 我使用的是 Ubuntu 18:04 64bit linux

anu*_*ava 6

您可以在 bash 本身中执行此操作:

var='1st line
2nd line
3rd line'

echo "${var//$'\n'/_}"
Run Code Online (Sandbox Code Playgroud)

1st line_2nd line_3rd line
Run Code Online (Sandbox Code Playgroud)