Regex 替换换行符转义'\n';使用转义换行符转义'\\n';使用sed
我试图使用Regex 替换换行符转义'\n';使用转义换行符转义'\\n';使用sed,regex,bash,sed,Regex,Bash,Sed,我试图使用sed将文字术语\n(不是换行符,文字)替换为文字\\n。我试过这个: echo '"Refreshing \n\n\n state prior"' | sed 's/\\n/\\\n/g' 这“有效”,但我需要它来输出文字字符\\n。现在我的结局是这样的: "Refreshing \ \ \ state prior" 我是否有办法在sed输出中维护\\n?将sed的/\\n/\\\n/g'更改为: sed 's/\\n/\\\\n/g' 如果要将\n替换为\\n以获取\\n请
sed
将文字术语\n
(不是换行符,文字)替换为文字\\n
。我试过这个:
echo '"Refreshing \n\n\n state prior"' | sed 's/\\n/\\\n/g'
这“有效”,但我需要它来输出文字字符\\n
。现在我的结局是这样的:
"Refreshing \
\
\
state prior"
我是否有办法在
sed
输出中维护\\n
?将sed的/\\n/\\\n/g'
更改为:
sed 's/\\n/\\\\n/g'
如果要将
\n
替换为\\n
以获取\\n
请在sed中再添加一个\
:
echo "Refreshing \n\n\n state prior" | sed 's/\\n/\\\\n/g'
您试图用
\\\n
执行的操作是打印\
字符,然后添加\n
,这会产生一行新行。当我运行此命令时,我的输出是“刷新\n\n\n之前的状态”
,我不清楚您到底想在这里执行什么操作。您的输入是包含\n
还是包含实际的换行符?你想在你的输出中得到什么<代码>\n<代码>\\n\n
?顺便说一句,echo“刷新\n\n\n状态优先”将打印刷新\n\n\n状态优先
,这是您想要的输出刚才在我的问题中发现了一个输入错误,我希望输出是\\n
。我在评论中说了这一点,但问题是\n
。很抱歉。awk'{gsub(/\\n/,“\\\\n”);print}
谢谢你的解释。@tubaguy50035我很好奇我的答案有什么问题:。看起来简单多了,但可能我遗漏了什么?@hek2mgl这不是我想要的输出。如果我能输出输入,我就不会在这里问这个问题了@tubaguy50035请尝试echo“hello\nworld”
它输出多少行?你看到你确实发布了一个无意义的问题了吗?我想要一行输出,带有文字字符\\n
。这个答案就是这样的,它解释了我做错了什么。不过,谢谢你的积极反馈。这不适合我。尝试sed:a;N、 美元!文学士;s/\n/\\n/g'
@EduardoLucio:你想做的是完全不同的事情。您正在用literal\n
替换换行符。