Cp

複製所選文件的名稱中有替換項

  • August 27, 2017

我有一些文件夾:

oldA with A_1.aaa, A_2.aaa, A_1.bbb, A.def, A.ghi 
oldB with B_1.aaa, B_2.aaa, B_1.bbb, B.def, B.ghi
and so on

並且需要通過選擇將它們複製到另一個文件夾。

我只想將 A.def 和 A​​.ghi 複製到 /newA,對 B 也是如此。我已經編寫了一個腳本,但它不起作用。

for i in A B C D
do
 folder="new${i}"
 mkdir $folder;
 cp path/to/old${i}/${i}{.def,.ghi} $folder
 cd $folder; some commands
 cd ..
done

錯誤是cp: cannot stat ‘oldA/A{.def,.ghi}’: No such file or directory

但是,當我使用直接命令時cp path/to/oldA/A{.def,.ghi} newA,它執行良好。我該怎麼辦?

如果我只想複製 A_1.aaa 和 A_2.aaa,過程是否類似?

這實際上是我的腳本。

#!/bin/bash
folder="Disperse"
mkdir $folder
cp 3B7V.pdb $folder
cd $folder

#awk '$5 != "C"' 3B7V.pdb > 3B7V_temp.pdb
#awk '$4 != "C"' 3B7V_temp.pdb > AB.pdb
sed -n 403,1981p 3B7V.pdb > A.pdb
sed -n 1982,3586p 3B7V.pdb > B.pdb

cd ..;mkdir EM;cd EM
for i in A B
do 
 folder="${i}_EM"
 mkdir $folder
 cp ../em.mdp ../Disperse/${i}.pdb $folder
 cd $folder

 echo -e "\n4" | pdb2gmx -f ${i}.pdb -o ${i}.gro -water none
 grompp -f em.mdp -c ${i}.gro -p topol.top -o ${i}_em.tpr
 mdrun -v -deffnm ${i}_em
 #grompp -f em.mdp -c ${i}_em.gro -p topol.top -o ${i}_em_mead.tpr
 cd .. #at EM folder
done

cd ..;mkdir PQR;cd PQR
for i in A B
do
 folder="${i}_PQR"
 mkdir $folder
 cp ../EM/${i}_EM/${i}* $folder
 cd $folder

 editconf -f ${i}_em.gro -o ${i}_em.pdb
 awk '$1 != "REMARK"' ${i}_em.pdb > ${i}_temp.pdb
 pdb2pqr --ff=AMBER --apbs-input ${i}_temp.pdb ${i}.pqr -v > log_${i}
 #editconf -f ${i}_em_mead.tpr -mead ${i}_gro.pqr
 #for j in *.pqr; do sed 1,8d "$j" > ../"${j/.*}"_sed.pqr; done
 cd .. #at PQR folder
done

cd ..;mkdir APBS;cd APBS
for i in A B
do
 folder="${i}_APBS"
 mkdir $folder;ls
 cp ../PQR/${i}_PQR/${i}{.pqr,.in} $folder
 cd $folder

 abps ${i}.in
 cd .. #at APBS folder
done

另外,我在 Konsole 中還有另一個問題。我不知道它是否相關,但我也會在這裡發布。

事實證明,我使用$ sh script的是執行腳本,而不是$ bash script. 大括號擴展需要 bash 才能執行。

引用自:https://unix.stackexchange.com/questions/131368