У меня есть много файлов, которые разбросаны более 300 каталогов в систематическом порядке:назначая переменные, содержащие числа динамически в BASH
GA001/curve_1/pdbs/FILES
GA002/curve_1/pdbs/FILES
....
GA300/curve_1/pdbs/FILES
теперь мне нужно, чтобы переместить все файлы в одну папку под названием allPDB. Вместо того, чтобы делать это вручную, я попытался написать bash-скрипт, но я явно совершенно некомпетентен. Я попытался создать цикл, который идет от 1 до 300, который обновляет путь, где находятся файлы, но он не работает. мой код показан ниже
#!/bin/bash
# loop running over the 300 dirs
for i in $(seq 1 300); do
if $i<10; then
printf -v mypath 'GA00%s/curve_1/pdbs' $i
elif $i=>10 && $i<100; then
mypath=$(printf 'GA0%s/curve_1/pdbs' $i)
else
mypath=$(printf 'GA%d/curve_1/pdbs' $i)
fi
echo $mypath # used to check the generated path
cp -pr $mypath/*.pdb allPDB/
done
я попытался с помощью в различных реализациях PRINTF согласно этой теме SPRINTF in shell scripting?. Я также попытался использовать как% i,% s, так и% d в вызове PRINTF, но путь, который генерируется для i = 9, - «GA9», а не «GA009». Кроме того, мне сообщают об ошибках:
MovePDB.sh: line 5: 1: command not found
MovePDB.sh: line 7: 1=: command not found
GA1/curve_1/pdbs
cp: GA1/curve_1/pdbs/*.pdb: No such file or directory
MovePDB.sh: line 5: 2: command not found
MovePDB.sh: line 7: 2=: command not found
GA2/curve_1/pdbs
...
cp: GA98/curve_1/pdbs/*.pdb: No such file or directory
MovePDB.sh: line 5: 99: command not found
MovePDB.sh: line 7: 99=: command not found
GA99/curve_1/pdbs
cp: GA99/curve_1/pdbs/*.pdb: No such file or directory
MovePDB.sh: line 5: 100: command not found
MovePDB.sh: line 7: 100=: command not found
GA100/curve_1/pdbs
MovePDB.sh: line 5: 101: command not found
MovePDB.sh: line 7: 101=: command not found
GA101/curve_1/pdbs
MovePDB.sh: line 5: 102: command not found
MovePDB.sh: line 7: 102=: command not found
Может ли кто-нибудь помочь мне? Я не понимаю, что «NUMBER (=) команда не найдена» ошибка
Приветствия!
Doh! не думал об использовании двух диких карт - спасибо! – DonMP