我想以.txt格式保存多个grep的结果。我做了
for i in GO_*.txt; do
grep -o "GO:\w*" ${i} | grep -f - ../PFAM2GO.txt > ${i}_PFAM+GO.txt
done
显然,最终文件名也包含原始文件扩展名,即GO_*.txt_PFAM+GO.txt
。
现在,我想只有GO_*_PFAM+GO.txt
。有没有办法修改${i}
以取消.txt
而无需事后执行rename
或mv
?
注意: *
部分的长度可变。
答案 0 :(得分:2)
您可以使用parameter expansion从文件名中删除扩展程序:
for i in GO_*.txt; do
name="${i%.txt}"
grep -o "GO:\w*" "${i}" | grep -f - ../PFAM2GO.txt > "${name}_PFAM+GO.txt"
done