선택한 파일을 이름을 바꿔서 복사

선택한 파일을 이름을 바꿔서 복사

몇 가지 폴더가 있습니다.

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

또한, 나는질문콘솔에서. 관련이 있는지는 모르겠지만 여기에도 게시하겠습니다.

답변1

$ sh script내가 대신 스크립트를 실행 하곤 했던 것으로 밝혀졌습니다 $ bash script. 이것버팀대 확장실행하려면 bash가 필요합니다.

관련 정보