问答详情
源自:3-8 sed高级操作命令-()符号案例

我想了解为什么我中间的匹配[a-z_-]将_放在-的后面就出现问题。

sed 's/\(^[a-z-_]\+\):.*$/\1/' passwd 

提示我这个sed: -e expression #1, char 24: Invalid range end


提问者:不期而遇TLJ 2018-06-07 17:13

个回答

  • qq_奔跑了丶兄弟_0
    2018-07-01 18:29:16

    猜测是范围的问题,例如'[0-9]'表示范围字符,'[-_]'这种就没有意义

  • 不期而遇TLJ
    2018-06-07 17:15:52

     sed 's/\(\w\+\):.*$/\1/' passwd

    我直接使用\w可以解决了。