sed 脚本的“'s' 命令的 RHS 上的引用 \1 无效”

sed 脚本的“'s' 命令的 RHS 上的引用 \1 无效”

例如,这是 md5sum 命令的输出:

35c9581c469c366e286be708a9d9f939 input.txt

这是我正在运行的命令行:

md5sum input.txt | sed -f script.sed

我想让 md5sum 的输出如下所示:

35c9xxxxxxxxxxxxxxxxxxxxxxxxxxxx input.txt

目前,我的 .sed 脚本包含以下内容:

:a s/^(.{4}x{0,})[^x ]/\1x/;ta

我不断收到此错误

sed: file script.sed line 2: invalid reference \1 on `s' command's RHS

我不知道为什么。如果有人知道如何解决它,或者更好的方法,请告诉我。

答案1

您需要使用扩展正则表达式sed -E如果可用)或者转义大括号和圆括号:

:a s/^\(.\{4\}x\{0,\}\)[^x ]/\1x/;ta

相关内容