Это должно сделать то, о чем вы просите:
for i in A/*_1.pdf
do
root=${i#A/}
root=${root%_1.pdf}
if [ -f "B/${root}.pdf" ]
then
cp -i "B/${root}.pdf" "A/${root}_2.pdf"
fi
done
Он просто находит каждый файл в A, для которого есть соответствующий файл в B, и копирует соответственно. Он использует расширение параметров оболочки для управления именами файлов из одной формы в другую.
Он не ограничивается семизначными именами; было неясно, хотите ли вы этого или это было просто для объяснения вопроса. Также будет сложнее, если вы хотите, чтобы он работал с числами, отличными от 1 и 2.
Я использовал cp -i
, чтобы избежать случайной перезаписи. Удалите -i
, если вы хотите перезаписать существующие файлы.