首页 > 解决方案 > 在变量中替换换行符并在 bash 中改回

问题描述

我想用字符替换所有新行,>然后再次替换。

INPUT=..a lot of stuff

INPUT_ARROW=${INPUT/\\n\>}
INPUT_ORIGINAL=${INPUT/>\\\n}

这是相当混乱的语法。

标签: bash

解决方案


您可以使用$'\n'来表示换行符:

echo "$s"
abc
123
foo
bar
p="${s//$'\n'/>}"
echo "$p"

abc>123>foo>bar

现在将其更改回换行符:

echo "${p//>/$'\n'}"

abc
123
foo
bar

推荐阅读