查找每行的序列匹配量

时间:2018-02-01 14:03:00

标签: unix grep

我希望使用GREP或类似的东西来查找文件每行中5个字母序列(AATTC)的总匹配,然后将结果打印到新文件中。例如:

File 1:
GGGGGAATTCGAATTC
GGGGGAATTCGGGGGG
GGGGGAATTCCAATTC

然后在另一个文件中逐行打印匹配

File 2:
2
1
2

2 个答案:

答案 0 :(得分:1)

Awk 解决方案:

awk '{ print gsub(/AATTC/,"") }' file1 > file2
  

gsub() 函数返回替换次数

$ cat file2
2
1
2

答案 1 :(得分:0)

如果必须使用grep,请将其置于while循环中,

$ while read -r line; do grep -o 'AATTC'<<<"$line"|wc -l >> file2 ; done < file1
$ cat file2
2
1
2

另一种方式:使用perl

$ perl -ne 'print s/AATTC/x/g ."\n"' file1 > file2