linux 系统中如何匹配指定数目的连续多个字符
1、测试数据
root@PC1:/home/test2# ls test.txt root@PC1:/home/test2# cat test.txt attatgcccagggtttgttacttcagatgtgtccagagtttctcccttct ggcaggttcatggtcttgctcacttcaagaatgaagctgcagacatttac ggtgagtgttacagcacttatatttgttgtatccagagtttgttccttca gatgtgtccagaatttcttccttctggcgggttcatggtcttgctcactt
2、提取前10个字符(连续匹配)
root@PC1:/home/test2# ls test.txt root@PC1:/home/test2# cat test.txt attatgcccagggtttgttacttcagatgtgtccagagtttctcccttct ggcaggttcatggtcttgctcacttcaagaatgaagctgcagacatttac ggtgagtgttacagcacttatatttgttgtatccagagtttgttccttca gatgtgtccagaatttcttccttctggcgggttcatggtcttgctcactt root@PC1:/home/test2# sed 's/[a-z]\{10\}/& /' test.txt ## 匹配前10个字符 attatgccca gggtttgttacttcagatgtgtccagagtttctcccttct ggcaggttca tggtcttgctcacttcaagaatgaagctgcagacatttac ggtgagtgtt acagcacttatatttgttgtatccagagtttgttccttca gatgtgtcca gaatttcttccttctggcgggttcatggtcttgctcactt root@PC1:/home/test2# sed 's/[a-z]\{10\}/& /' test.txt | awk '{print $1}' ## 提取前10个字符 attatgccca ggcaggttca ggtgagtgtt gatgtgtcca
3、提取后10个字符(连续匹配)
root@PC1:/home/test2# ls test.txt root@PC1:/home/test2# cat test.txt attatgcccagggtttgttacttcagatgtgtccagagtttctcccttct ggcaggttcatggtcttgctcacttcaagaatgaagctgcagacatttac ggtgagtgttacagcacttatatttgttgtatccagagtttgttccttca gatgtgtccagaatttcttccttctggcgggttcatggtcttgctcactt root@PC1:/home/test2# sed 's/[a-z]\{10\}$/ &/' test.txt ## 匹配后10个字符 attatgcccagggtttgttacttcagatgtgtccagagtt tctcccttct ggcaggttcatggtcttgctcacttcaagaatgaagctgc agacatttac ggtgagtgttacagcacttatatttgttgtatccagagtt tgttccttca gatgtgtccagaatttcttccttctggcgggttcatggtc ttgctcactt root@PC1:/home/test2# sed 's/[a-z]\{10\}$/ &/' test.txt | awk '{print $NF}' ## 提取后10个字符 tctcccttct agacatttac tgttccttca ttgctcactt