在以前的一个项目中,我使用sed实用程序将换行符替换为NUL字符,以与用于在CI服务器上添加发布说明的API兼容。
sed -zE 's/rn|n/\n/g' < CHANGELOG.md
然而,在另一个项目中,我使用了一个基于alpine的docker映像(mcr.microsoft.com/dotnet/core/sdk:3.1-alpine
(,并且在使用sed
实用程序时,-z
或--null-data
映像在alpine linux上无法识别。
如何使用Alpine Linuxsed
实用程序实现-z
或--null-data
的等效功能?
当使用Alpine sed实用程序时,-z或--null数据切换的等价物是什么?
没有等价物。
如何使用Alpine Linux sed实用程序实现等效的-z或--null数据?
安装GNU sed,而不是使用busybox sed。
/ # sed --help
BusyBox v1.31.1 () multi-call binary.
/ # apk add sed
...
/ # sed --version
sed (GNU sed) 4.8
我使用sed实用程序用NUL 替换换行符
使用tr
;翻译或删除字符";。
tr 'n' ' '
sed -zE 's/rn|n/\n/g'
如果要远程r
,则无需使用零分隔流。只需从实际行尾删除r
字符,如果sed
已经在行上工作,为什么要匹配换行符。
sed 's/r$//'
但实际上,再次使用tr
:来删除字符
tr -d 'r'