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

来源:3-8 sed高级操作命令-()符号案例

不期而遇TLJ

2018-06-07 17:13

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

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


写回答 关注

2回答

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

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

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

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

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

    qq_奔跑了... 回复慕粉1472...

    下一小节会解释。 \1就是对源串中第一个()中的内容一个代替

    2018-07-01 18:06:02

    共 2 条回复 >

实例妙解Sed和Awk的秘密

sed和awk是很好的Linux文本处理工具,帮助你提高效率,成为Linux达人。

16791 学习 · 58 问题

查看课程

相似问题