gpt4 book ai didi

bash - 如何用 Unix Bash 脚本中的新行替换 "\n"字符串

转载 作者:行者123 更新时间:2023-11-29 09:16:04 25 4
gpt4 key购买 nike

似乎无法在网上找到这个问题的答案...

我有一个字符串变量(外部来源),其中新行 "\n" 编码为字符串。

我想用实际的新行回车替换这些字符串。下面的代码可以实现这一点......

echo $EXT_DESCR | sed 's/\\n/\n/g'

但是当我尝试将其结果存储到它自己的变量中时,它会将它们转换回字符串

NEW_DESCR=`echo $EXT_DESCR | sed 's/\\n/\n/g'`

如何实现,或者我做错了什么?

这是我一直在测试以尝试获得正确结果的代码

EXT_DESCR="This is a text\nWith a new line"
echo $EXT_DESCR | sed 's/\\n/\n/g'

NEW_DESCR=`echo $EXT_DESCR | sed 's/\\n/\n/g'`
echo ""
echo "$NEW_DESCR"

最佳答案

不需要 sed,使用 parameter expansion :

$ foo='1\n2\n3'; echo "${foo//'\n'/$'\n'}"  
1
2
3

使用 bash 4.4 或更新版本,您可以在 ${parameter@operator} 中使用 E 运算符:

$ foo='1\n2\n3'; echo "${foo@E}"
1
2
3

关于bash - 如何用 Unix Bash 脚本中的新行替换 "\n"字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52065016/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com