sed:-e 表达式 #1,字符 52:无效范围结束

sed: -e expression #1, char 52: Invalid range end

我有这个在 regex101 上验证的正则表达式: [a-zA-Z0-9-_.]+\@[a-zA-Z0-9-]+\.+[a-zA-Z0-9-]{2,4}

但是当我尝试使用 sed 运行 它时,我得到:sed: -e expression #1, char 52: Invalid range end

据我了解,当您定义范围时,这通常是一个问题: A-z 在某些版本的 sed 中,但在这里我放的是 a-zA-Z?所以我想这是导致错误的特殊字符,但我该如何解决它?

塞德: $( sed -E -n '/[a-zA-Z0-9-_.]+\@[a-zA-Z0-9-]+\.+[a-zA-Z0-9-]{2,4}/p' < emails.txt )

在您的第一个字符中 class [a-zA-Z0-9-_.] 这不是有效范围:9-_

- 移动到您角色中的最后一个字符 class:[a-zA-Z0-9_.-]