Я работаю над сценарием оболочки для работы, который должен позволить мне найти каталог на основе 5- или 6-значного номера, который использует наша система, и скопировать файл из этого каталога. Я бы сделал это вручную, но мне нужно получить более 3000 записей из примерно 3 ТБ доступных данных.
Вот проблема, с которой я сталкиваюсь. Часть моего скрипта использует find, и когда я запускаю его, скрипт вставляет '\r' перед подстановочным знаком, который я вставил в скрипт. Я пытался экранировать его с помощью \, цитируя его, но ничего, что я сделаю, не позволит мне использовать подстановочный знак в этой команде. Я процитировал мой код ниже.
#!/bin/bash
export IFS="\n"
cat $1 | while read -r LINE
do
#Change directory to root of necessary files.
cd /volume1/Backup/CMS_Data/CLIENT\ DATA\ COPY/
echo "Current Directory"
pwd
#Get directory needed based on current line
CLAIM="$(find $LINE\*/documents/ -type d)"
#Change to directory based on claim number.
echo $CLAIM
done
Ниже приведен результат, который я получаю.
find: `48668\r*/documents/': No such file or directory
Я не могу найти что-либо о побеге или о том, как его обойти. Есть идеи, что вызывает это?