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 @ 2023-12-24 10:19  小鲨鱼2018  阅读(18)  评论(0编辑  收藏  举报