永发信息网

关于shell的正则,匹配次数的问题

答案:2  悬赏:0  手机版
解决时间 2021-02-15 21:24
  • 提问者网友:动次大次蹦擦擦
  • 2021-02-15 13:14
$ls
123456 234567
$ls|grep [0-9]{6}
$ls|grep [0-9]/{6/}
$ls|grep [0-9]+
$ls|grep [0-9]*

环境是redhat9的bash,为什么后面的ls|grep~没有结果啊?
最佳答案
  • 五星知识达人网友:千杯敬自由
  • 2021-02-15 14:18
百度问的了
全部回答
  • 1楼网友:空山清雨
  • 2021-02-15 14:39
正则匹配中,点号.表示任意一个字符,*表示重复前面一个字符(这里就是点号.)0次或多次。 \(.*\)a表示要以一个a字符结尾,而默认情况下*具有贪婪特性,会匹配符合要求的最大数目的字符。 因此 .* 就匹配到了最后一个a前面的所有字符。 \( \) 这种结构在sed的替换命令里是组的概念,在后面替换时可以用\n来引用。 第一个组用\1,第二个组用\2,依此类推。 这个命令的作用就是:将字符串中最后一个a字符替换为b,其余不变。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯