2015-11-04 31 views
0

我想在特定文件中找到一个表达式,并将其替换为脚本中使用的文件的当前名称。我现在的脚本是:如何查找表达式并使用xargs和sed替换bash中.txt的文件名?

for FILE in ../pdb/*; 

    do 

    basename $FILE .pdb | xargs -I '{}' sed -i 's/_final.pdb/{}_final.pdb/g' ./temp.txt 

    ./program < temp.txt 

    done 

在psfgen.inp输出包含名称的每个文件,而不仅仅是当前文件:

writepdb fileAfileBfileC_final.pdb

,它想:

writepdb fileA_final.pdb

如何替换temp.txt中的当前基本名称以使程序在写入之前使用temp.txt循环中的下一个基本名称,而不是在执行程序之前写入文件夹中所有文件的基本名称?

谢谢!

回答

0

好,得到的答复是只能更换整条生产线是这样的:

for FILE in ../pdb/*; 

    do 

    basename $FILE .pdb | xargs -I '{}' sed -i '/_final.pdb/c\writepdb {}_final.pdb' ./temp.txt 

    ./program < temp.txt 

    done