Alpine Linux - sed - 使用 Alpine sed 实用程序时 -z 或 --null-data 开关的等效项是什么?
Alpine Linux - sed - What Is The Equivalent Of -z or --null-data Switch When Using Alpine sed Utility?
在之前的项目中,我使用 sed 实用程序用 NUL 字符替换换行符以与 API 兼容,以便在 CI 服务器上添加发行说明。
sed -zE 's/\r\n|\n/\n/g' < CHANGELOG.md
但是,在另一个项目中,我使用的是基于 alpine 的 docker 图像 (mcr.microsoft.com/dotnet/core/sdk:3.1-alpine
),而 -z
或 --null-data
图像在 alpine linux 使用 sed
实用程序时。
如何使用 Alpine Linux sed
实用程序实现 -z
或 --null-data
的等价物?
What Is The Equivalent Of -z or --null-data Switch When Using Alpine sed Utility?
没有等价物。
How do I achieve the equivalent of the -z or --null-data with Alpine Linux sed utility?
安装 GNU sed,而不是使用 busybox sed。
/ # sed --help
BusyBox v1.31.1 () multi-call binary.
/ # apk add sed
...
/ # sed --version
sed (GNU sed) 4.8
I used the sed utility to replace newlines with NUL
使用tr
,这是一个“翻译或删除字符”的工具。
tr '\n' '[=11=]'
sed -zE 's/\r\n|\n/\n/g'
如果要远程\r
,则无需使用零分隔流。只需从实际的行尾删除 \r
字符,如果 sed
已经在行上工作,为什么要匹配换行符。
sed 's/\r$//'
但实际上,要再次删除字符,请使用 tr
:
tr -d '\r'
在之前的项目中,我使用 sed 实用程序用 NUL 字符替换换行符以与 API 兼容,以便在 CI 服务器上添加发行说明。
sed -zE 's/\r\n|\n/\n/g' < CHANGELOG.md
但是,在另一个项目中,我使用的是基于 alpine 的 docker 图像 (mcr.microsoft.com/dotnet/core/sdk:3.1-alpine
),而 -z
或 --null-data
图像在 alpine linux 使用 sed
实用程序时。
如何使用 Alpine Linux sed
实用程序实现 -z
或 --null-data
的等价物?
What Is The Equivalent Of -z or --null-data Switch When Using Alpine sed Utility?
没有等价物。
How do I achieve the equivalent of the -z or --null-data with Alpine Linux sed utility?
安装 GNU sed,而不是使用 busybox sed。
/ # sed --help
BusyBox v1.31.1 () multi-call binary.
/ # apk add sed
...
/ # sed --version
sed (GNU sed) 4.8
I used the sed utility to replace newlines with NUL
使用tr
,这是一个“翻译或删除字符”的工具。
tr '\n' '[=11=]'
sed -zE 's/\r\n|\n/\n/g'
如果要远程\r
,则无需使用零分隔流。只需从实际的行尾删除 \r
字符,如果 sed
已经在行上工作,为什么要匹配换行符。
sed 's/\r$//'
但实际上,要再次删除字符,请使用 tr
:
tr -d '\r'