正则表达式 – 查找具有特定字母数的字符串,扩展名包含在grep中
发布时间:2020-12-14 05:49:22 所属栏目:百科 来源:网络整理
导读:如果我管道ls到grep,我怎么能返回一个文件列表,条件是它们只有x个字母,包括扩展名? 所以,例如,如果ls给了我: abcde.jav a156e.exc test.c prog1.c qwert r.c 我正在寻找包含严格5个字母的所有文件,包括扩展名: a156e.exc test.c prog1.c qwert 我试过了:
如果我管道ls到grep,我怎么能返回一个文件列表,条件是它们只有x个字母,包括扩展名?
所以,例如,如果ls给了我: abcde.jav a156e.exc test.c prog1.c qwert r.c 我正在寻找包含严格5个字母的所有文件,包括扩展名: a156e.exc test.c prog1.c qwert 我试过了: ls | grep '^[a-z]${5}' ls | grep "^[a-z]|[a-z]$" 和其他类似的东西,但我似乎无法得到它.似乎解决方案应该非常简单,但我无法弄清楚.任何帮助,将不胜感激. 解决方法
您可以使用以下表达式:
Live Example ^([^a-z]*[a-z][^a-z]*){5}$ 说明: > ^ – 表示字符串开头的锚点 用法: ls | grep -E '^([^a-z]*[a-z][^a-z]*){5}$' 或没有ls: for f in *; do if [[ $f =~ ^([^a-z]*[a-z][^a-z]*){5}$]] then echo $f fi done (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |