我必须从包含特定字符串的文件(5MB)中 grep 来自大文件(27GB)的相同字符串(和其他信息)。为了加快分析速度,我将 27GB 文件拆分为 1GB 文件,然后应用以下脚本(这里有一些人的帮助)。但是它不是很有效(生成一个 180KB 的文件需要 30 个小时!)。
这是脚本。有没有比 grep 更合适的工具?或者更有效的使用 grep 的方法?
#!/bin/bash
NR_CPUS=4
count=0
for z in `echo {a..z}` ;
do
for x in `echo {a..z}` ;
do
for y in `echo {a..z}` ;
do
for ids in $(cat input.sam|awk '{print $1}');
do
grep $ids sample_"$z""$x""$y"|awk '{print $1" "$10" "$11}' >> output.txt &
let count+=1
[[ $((count%NR_CPUS)) -eq 0 ]] && wait
done
done #&