Alpine Linux-当使用Alpine sed实用程序时,-z或--null数据切换的等价物是什么



在以前的一个项目中,我使用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'

最新更新