私は Linux の初心者であり、プログラミングの初心者ですが 、ファイルのリストを for ループに渡すための数行のコードと、フォルダーで同じことを行うためのコードをここでパッチすることができました。
# Run search.sh from base folder;
# Only interested in folders under base folder (e.g., baseFolder/FolderA)
# list all folders in base directory that match search parameters;
# cut out just the folder name; feed to variable DIR
DIR=$(find . -name *MTL.txt | cut -d '/' -f2)
# echo $DIR = "FolderA FolderB FolderC"
# place that information in a for-loop
for i in $DIR; do
cd $DIR # step into folder
# find specific file in folder for processing
FILE=$(find -name *MTL | cut -d '/' -f2)
# copy in a static file from another folder;
# rename file based on file name found in previous step
cp /baseFolder/staticfile.txt $FILE.new
do more stuff
cd .. # step out of directory
done
最初のディレクトリのコードは正常に完了しますが、後続のディレクトリへの移動に失敗します。私の(多くの)問題の1つは、私のようにフォルダー名のリストを $DIR に渡すことができないことだと思います。これはかなり単純なはずですが、私の foo は弱いです。
先生、道を教えてください。
編集:
「cd $DIR」を「cd $i」に変更すると、望ましい効果が得られました。コードはすべてのディレクトリをループし、各ディレクトリ内で正しく操作を実行するようになりました。-上記にフラグを立てるためのcore1024へのThx。