linux 中 grep命令限制匹配次数

 

001、测试数据,,匹配末尾为_一个数字的数据

复制代码
[root@pc1 test2]# ls
a.txt
[root@pc1 test2]# cat a.txt                      ## 测试数据
NC_052532.1     tRNAscan-SE     TRNAD-GUC_1
NC_052532.1     tRNAscan-SE     TRNAD-GUC_229
NC_052532.1     tRNAscan-SE     TRNAS-AGA_1
NC_052532.1     tRNAscan-SE     TRNAS-AGA_27
NC_052532.1     tRNAscan-SE     TRNAS-AGA_33445
NC_052532.1     tRNAscan-SE     TRNAS-AGA_45
NC_052532.1     tRNAscan-SE     TRNAI-AAU_12
NC_052532.1     tRNAscan-SE     TRNAD-GUC_3
NC_052532.1     tRNAscan-SE     TRNAD-GUC_4334
NC_052532.1     tRNAscan-SE     TRNAI-AAU_2
[root@pc1 test2]# grep -E "_[0-9]$" a.txt        ## -E表示扩展正则表达式, 匹配末尾为_一个数字的数据
NC_052532.1     tRNAscan-SE     TRNAD-GUC_1
NC_052532.1     tRNAscan-SE     TRNAS-AGA_1
NC_052532.1     tRNAscan-SE     TRNAD-GUC_3
NC_052532.1     tRNAscan-SE     TRNAI-AAU_2
复制代码

 

002、匹配指定次数1次

复制代码
[root@pc1 test2]# ls
a.txt
[root@pc1 test2]# cat a.txt                         ## 测试数据
NC_052532.1     tRNAscan-SE     TRNAD-GUC_1
NC_052532.1     tRNAscan-SE     TRNAD-GUC_229
NC_052532.1     tRNAscan-SE     TRNAS-AGA_1
NC_052532.1     tRNAscan-SE     TRNAS-AGA_27
NC_052532.1     tRNAscan-SE     TRNAS-AGA_33445
NC_052532.1     tRNAscan-SE     TRNAS-AGA_45
NC_052532.1     tRNAscan-SE     TRNAI-AAU_12
NC_052532.1     tRNAscan-SE     TRNAD-GUC_3
NC_052532.1     tRNAscan-SE     TRNAD-GUC_4334
NC_052532.1     tRNAscan-SE     TRNAI-AAU_2
[root@pc1 test2]# grep -E "_[0-9]{1}$" a.txt        ##任意数字匹配1次,(_和$为限定符)
NC_052532.1     tRNAscan-SE     TRNAD-GUC_1
NC_052532.1     tRNAscan-SE     TRNAS-AGA_1
NC_052532.1     tRNAscan-SE     TRNAD-GUC_3
NC_052532.1     tRNAscan-SE     TRNAI-AAU_2
复制代码

 

003、匹配指定次数2次或者3次

复制代码
[root@pc1 test2]# ls
a.txt
[root@pc1 test2]# cat a.txt
NC_052532.1     tRNAscan-SE     TRNAD-GUC_1
NC_052532.1     tRNAscan-SE     TRNAD-GUC_229
NC_052532.1     tRNAscan-SE     TRNAS-AGA_1
NC_052532.1     tRNAscan-SE     TRNAS-AGA_27
NC_052532.1     tRNAscan-SE     TRNAS-AGA_33445
NC_052532.1     tRNAscan-SE     TRNAS-AGA_45
NC_052532.1     tRNAscan-SE     TRNAI-AAU_12
NC_052532.1     tRNAscan-SE     TRNAD-GUC_3
NC_052532.1     tRNAscan-SE     TRNAD-GUC_4334
NC_052532.1     tRNAscan-SE     TRNAI-AAU_2
[root@pc1 test2]# grep -E "_[0-9]{2}$" a.txt         ## 限制指定次数2次
NC_052532.1     tRNAscan-SE     TRNAS-AGA_27
NC_052532.1     tRNAscan-SE     TRNAS-AGA_45
NC_052532.1     tRNAscan-SE     TRNAI-AAU_12
[root@pc1 test2]# grep -E "_[0-9]{3}$" a.txt         ## 限制指定次数3次
NC_052532.1     tRNAscan-SE     TRNAD-GUC_229
复制代码

 

004、指定最少匹配次数

复制代码
[root@pc1 test2]# ls
a.txt
[root@pc1 test2]# cat a.txt  
NC_052532.1     tRNAscan-SE     TRNAD-GUC_1
NC_052532.1     tRNAscan-SE     TRNAD-GUC_229
NC_052532.1     tRNAscan-SE     TRNAS-AGA_1
NC_052532.1     tRNAscan-SE     TRNAS-AGA_27
NC_052532.1     tRNAscan-SE     TRNAS-AGA_33445
NC_052532.1     tRNAscan-SE     TRNAS-AGA_45
NC_052532.1     tRNAscan-SE     TRNAI-AAU_12
NC_052532.1     tRNAscan-SE     TRNAD-GUC_3
NC_052532.1     tRNAscan-SE     TRNAD-GUC_4334
NC_052532.1     tRNAscan-SE     TRNAI-AAU_2
[root@pc1 test2]# grep -E "_[0-9]{1,}$" a.txt             ## 指定最少匹配次数1次
NC_052532.1     tRNAscan-SE     TRNAD-GUC_1
NC_052532.1     tRNAscan-SE     TRNAD-GUC_229
NC_052532.1     tRNAscan-SE     TRNAS-AGA_1
NC_052532.1     tRNAscan-SE     TRNAS-AGA_27
NC_052532.1     tRNAscan-SE     TRNAS-AGA_33445
NC_052532.1     tRNAscan-SE     TRNAS-AGA_45
NC_052532.1     tRNAscan-SE     TRNAI-AAU_12
NC_052532.1     tRNAscan-SE     TRNAD-GUC_3
NC_052532.1     tRNAscan-SE     TRNAD-GUC_4334
NC_052532.1     tRNAscan-SE     TRNAI-AAU_2
[root@pc1 test2]# grep -E "_[0-9]{2,}$" a.txt            ## 指定最少匹配次数2次
NC_052532.1     tRNAscan-SE     TRNAD-GUC_229
NC_052532.1     tRNAscan-SE     TRNAS-AGA_27
NC_052532.1     tRNAscan-SE     TRNAS-AGA_33445
NC_052532.1     tRNAscan-SE     TRNAS-AGA_45
NC_052532.1     tRNAscan-SE     TRNAI-AAU_12
NC_052532.1     tRNAscan-SE     TRNAD-GUC_4334
[root@pc1 test2]# grep -E "_[0-9]{3,}$" a.txt             ## 指定最少匹配次数3次
NC_052532.1     tRNAscan-SE     TRNAD-GUC_229
NC_052532.1     tRNAscan-SE     TRNAS-AGA_33445
NC_052532.1     tRNAscan-SE     TRNAD-GUC_4334
复制代码

 

005、指定最多匹配次数

复制代码
[root@pc1 test2]# ls
a.txt
[root@pc1 test2]# cat a.txt
NC_052532.1     tRNAscan-SE     TRNAD-GUC_1
NC_052532.1     tRNAscan-SE     TRNAD-GUC_229
NC_052532.1     tRNAscan-SE     TRNAS-AGA_1
NC_052532.1     tRNAscan-SE     TRNAS-AGA_27
NC_052532.1     tRNAscan-SE     TRNAS-AGA_33445
NC_052532.1     tRNAscan-SE     TRNAS-AGA_45
NC_052532.1     tRNAscan-SE     TRNAI-AAU_12
NC_052532.1     tRNAscan-SE     TRNAD-GUC_3
NC_052532.1     tRNAscan-SE     TRNAD-GUC_4334
NC_052532.1     tRNAscan-SE     TRNAI-AAU_2
[root@pc1 test2]# grep -E "_[0-9]{,1}$" a.txt        ## 最多匹配1次
NC_052532.1     tRNAscan-SE     TRNAD-GUC_1
NC_052532.1     tRNAscan-SE     TRNAS-AGA_1
NC_052532.1     tRNAscan-SE     TRNAD-GUC_3
NC_052532.1     tRNAscan-SE     TRNAI-AAU_2
[root@pc1 test2]# grep -E "_[0-9]{,2}$" a.txt        ## 最多匹配2次
NC_052532.1     tRNAscan-SE     TRNAD-GUC_1
NC_052532.1     tRNAscan-SE     TRNAS-AGA_1
NC_052532.1     tRNAscan-SE     TRNAS-AGA_27
NC_052532.1     tRNAscan-SE     TRNAS-AGA_45
NC_052532.1     tRNAscan-SE     TRNAI-AAU_12
NC_052532.1     tRNAscan-SE     TRNAD-GUC_3
NC_052532.1     tRNAscan-SE     TRNAI-AAU_2
[root@pc1 test2]# grep -E "_[0-9]{,3}$" a.txt        ## 最多匹配3次
NC_052532.1     tRNAscan-SE     TRNAD-GUC_1
NC_052532.1     tRNAscan-SE     TRNAD-GUC_229
NC_052532.1     tRNAscan-SE     TRNAS-AGA_1
NC_052532.1     tRNAscan-SE     TRNAS-AGA_27
NC_052532.1     tRNAscan-SE     TRNAS-AGA_45
NC_052532.1     tRNAscan-SE     TRNAI-AAU_12
NC_052532.1     tRNAscan-SE     TRNAD-GUC_3
NC_052532.1     tRNAscan-SE     TRNAI-AAU_2
复制代码

 

006、指定匹配次数的范围

复制代码
[root@pc1 test2]# ls
a.txt
[root@pc1 test2]# cat a.txt
NC_052532.1     tRNAscan-SE     TRNAD-GUC_1
NC_052532.1     tRNAscan-SE     TRNAD-GUC_229
NC_052532.1     tRNAscan-SE     TRNAS-AGA_1
NC_052532.1     tRNAscan-SE     TRNAS-AGA_27
NC_052532.1     tRNAscan-SE     TRNAS-AGA_33445
NC_052532.1     tRNAscan-SE     TRNAS-AGA_45
NC_052532.1     tRNAscan-SE     TRNAI-AAU_12
NC_052532.1     tRNAscan-SE     TRNAD-GUC_3
NC_052532.1     tRNAscan-SE     TRNAD-GUC_4334
NC_052532.1     tRNAscan-SE     TRNAI-AAU_2
[root@pc1 test2]# grep -E "_[0-9]{1,2}$" a.txt        ## 指定匹配次数范围1-2
NC_052532.1     tRNAscan-SE     TRNAD-GUC_1
NC_052532.1     tRNAscan-SE     TRNAS-AGA_1
NC_052532.1     tRNAscan-SE     TRNAS-AGA_27
NC_052532.1     tRNAscan-SE     TRNAS-AGA_45
NC_052532.1     tRNAscan-SE     TRNAI-AAU_12
NC_052532.1     tRNAscan-SE     TRNAD-GUC_3
NC_052532.1     tRNAscan-SE     TRNAI-AAU_2
[root@pc1 test2]# grep -E "_[0-9]{2,3}$" a.txt        ## 指定匹配次数范围2-3
NC_052532.1     tRNAscan-SE     TRNAD-GUC_229
NC_052532.1     tRNAscan-SE     TRNAS-AGA_27
NC_052532.1     tRNAscan-SE     TRNAS-AGA_45
NC_052532.1     tRNAscan-SE     TRNAI-AAU_12
[root@pc1 test2]# grep -E "_[0-9]{3,5}$" a.txt        ## 指定匹配次数范围3-5
NC_052532.1     tRNAscan-SE     TRNAD-GUC_229
NC_052532.1     tRNAscan-SE     TRNAS-AGA_33445
NC_052532.1     tRNAscan-SE     TRNAD-GUC_4334
复制代码

 。

 

posted @   小鲨鱼2018  阅读(74)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
历史上的今天:
2022-12-24 linux 中sed -r选项 支持扩展正则表达式
2022-12-24 linux 中 提取或者删除注释行
2022-12-24 linux 中sed命令删除数据的任意列
2022-12-24 linux 中 输入字母序列
2022-12-24 linux 中 {} 组合%实现截取文件名
2021-12-24 ubuntu中启动系统后不自动执行source ~./bashrc的解决方法
2020-12-24 c语言中语音警告转义字符
点击右上角即可分享
微信分享提示