如何基于文件名第5个子串列使用grep筛选出含.03.的文件
解决方案
精准匹配第5个字段为03的命令
如果要严格匹配按点分隔后的第5个子串为03,避免其他位置出现.03.导致的误匹配,使用以下命令:
ls | grep -E '^([^.]+\.){4}03\.'
命令说明
-E参数启用扩展正则匹配^锚定文件名起始位置([^.]+\.){4}匹配连续4段「非点字符+点分隔符」的结构,对应文件名的前4个子串03\.匹配第5段内容恰好为03,且后接点分隔符,完全符合筛选要求
简易匹配(不推荐,存在误匹配风险)
如果不需要严格限制是第5个字段,仅需要筛选文件名中包含.03.的文件,可以直接使用:
ls | grep '\.03\.'
注意:该命令会匹配文件名任意位置出现的
.03.,如果其他子串位置出现03会被误筛选,比如文件名为dd.03.test.123.01.txt也会被命中。
示例运行结果
对给出的示例文件列表运行精准匹配命令后,输出结果如下:
dd.20211014.15000.123.03.11111.txt dd.20211014.15203.143.03.11111.txt dd.20211014.15000.123.03.11111.txt
内容的提问来源于stack exchange,提问作者user3369123
相关产品推荐
相关产品推荐

