我对 GNU sed
、 POSIXsed
和 BSDsed
的无数选项感到很困惑。如何\n
使用这三种sed
类型用换行符替换文字?
unx*_*nut 44
sed 's/\\n/\
/g'
Run Code Online (Sandbox Code Playgroud)
请注意在替换字符串中点击 return 之前的反斜杠。
ter*_*don 16
由于您已经有了便携式sed
答案,因此sed
如果您需要以某种方式操作换行符,我只会提到这很少是最好的工具。Perl 几乎和 一样可移植sed
,默认安装在大多数 *nix 系统上,可以很容易地处理这个问题:
printf '%s\n' 'aa\nbb' | perl -pe 's/\\n/\n/g'
Run Code Online (Sandbox Code Playgroud)
另一个非常便携的选择是awk
:
printf '%s\n' 'aa\nbb' | awk '{gsub("\\\\n","\n")};1'
Run Code Online (Sandbox Code Playgroud)
在 Solaris 上,请记住使用 /usr/xpg4/bin 中的标准 awk,/bin 中的 awk 是历史版本,不应用于新脚本。