我想在 100 个文件中搜索 14 种不同的模式。在我尝试的那一刻
cat s_3_2_*_qseq.txt | grep -c 'pattern1\|pattern2\|pattern3\|pattern4\|pattern5\|...pattern14'
Run Code Online (Sandbox Code Playgroud)
这给了我每个文件中所有模式的编号
s_3_3_001_qseq.txt:12
s_3_3_002_qseq.txt:15
.
s_3_3_0068_qseq.txt:5
Run Code Online (Sandbox Code Playgroud)
我有兴趣单独查看每个模式的结果如下:
file pattern1 pattern2 ..... pattern14
s_3_3_001_qseq.txt: 0 2 5
s_3_3_002_qseq.txt: 7 1 3
.
.
s_3_3_0068_qseq.txt: 1 2 1
Run Code Online (Sandbox Code Playgroud)
知道我该怎么做,unix、perl 或 python 解决方案会很好。
PATTERNS=(dummy pattern1 pattern2 ... pattern14) ; dummy to occupy index zero
for file in /path/to/my/files/*
do
for p in 1 2 3 4 5 6 7 8 9 10 11 12 13 14
printf ${file}"\t"
do
c=$(grep -c PATTERNS[${p}] ${file}) # depending on the nature of your pattern you may need quotes around it
printf ${c}"\t"
done
echo
done
Run Code Online (Sandbox Code Playgroud)
像这样的东西可能会起作用(未检查语法,如果您决定使用它,请小心)
归档时间: |
|
查看次数: |
102 次 |
最近记录: |