У меня есть набор команд для изменения содержимого файлов, называемых MenuSettings, которые отлично работают при обращении к папке.
cd /Applications/snowflake/table-updater/Testing/Applications/Salford_100
sed -e '1r MenuSettings.bak' -e '1,2d' MenuSettings.txt >> MenuSettings2.txt
cat MenuSettings2.txt | sed '/^AppName: */{h;s///;x;}; /^\(AppName_.._..:\).*/{s//\1/;G;s/\n/ /;}' >> MenuSettings3.txt
rm -v MenuSettings2.txt
mv -v MenuSettings3.txt MenuSettings.txt
Однако, когда я пытаюсь запустить их через несколько папок, пишу это
for dir in $(find salford_* -type d);do
sed -e '1r MenuSettings.bak' -e '1,2d' MenuSettings.txt >> MenuSettings2.txt
cat MenuSettings2.txt | sed '/^AppName: */{h;s///;x;}; /^\(AppName_.._..:\).*/{s//\1/;G;s/\n/ /;}' >> MenuSettings3.txt
rm -v MenuSettings2.txt
mv -v MenuSettings3.txt MenuSettings.txt
done
Я получаю ошибку
sed: MenuSettings.txt: No such file or directory
Что делает все следующие команды неэффективными, и я получаю пустой текстовый файл в корне моего поиска. MenuSettings.txt находится в каждом каталоге с именем Salford. И когда я проверяю находку, чтобы повторить то, что его поиск показывает все хорошо. Я пробовал несколько методов поиска, но безрезультатно, кто-нибудь может помочь