如何在bash中使用xargs和sed查找表达式并替换为.txt文件名?
我想在特定文件中找到一个表达式,并用脚本中使用的文件的当前名称替换它。我当前的脚本是:如何在bash中使用xargs和sed查找表达式并替换为.txt文件名?,bash,sed,xargs,Bash,Sed,Xargs,我想在特定文件中找到一个表达式,并用脚本中使用的文件的当前名称替换它。我当前的脚本是: for FILE in ../pdb/*; do basename $FILE .pdb | xargs -I '{}' sed -i 's/_final.pdb/{}_final.pdb/g' ./temp.txt ./program < temp.txt done 用于../pdb/*中的文件; 做 basename$FILE.pdb | xargs-I
for FILE in ../pdb/*;
do
basename $FILE .pdb | xargs -I '{}' sed -i 's/_final.pdb/{}_final.pdb/g' ./temp.txt
./program < temp.txt
done
用于../pdb/*中的文件;
做
basename$FILE.pdb | xargs-I'{}sed-I's/_final.pdb/{}_final.pdb/g./temp.txt
/程序
psfgen.inp中的输出包含每个文件的名称,而不仅仅是当前文件:
writepdb fileAfileBfileC_final.pdb
它应该是:
writepdb文件a_final.pdb
如何替换temp.txt中的当前basename,使程序在从循环写入下一个basename之前使用temp.txt,而不是在执行程序之前写入文件夹中所有文件的basename
谢谢 好的,答案就是这样替换整条线路:
for FILE in ../pdb/*;
do
basename $FILE .pdb | xargs -I '{}' sed -i '/_final.pdb/c\writepdb {}_final.pdb' ./temp.txt
./program < temp.txt
done
用于../pdb/*中的文件;
做
basename$FILE.pdb | xargs-I'{}sed-I'/_final.pdb/c\writepdb{}_final.pdb'/temp.txt
/程序