既存のファイルと同じ名前のフォルダーを作成しようとしています。
for f in $(find . -name '*.txt')
do mkdir $f
ここで、「検索」は現在のパスにあるファイルを一覧表示し、これらのファイルごとに、まったく同じ名前のディレクトリを作成しようとします。それを行う 1 つの方法は、最初に一時フォルダーを作成することです。
for f in $(find . -name '*.txt')
do mkdir temporary # create a temporary folder
mv $f temporary # move the file into the folder
mv temporary $f # rename the temporary folder to the name of the file
cd $f # enter the folder and go on....
awk '/[[.*]]/{g++} { print $0 > g".txt"}' $f
cd ..
done
すべてのフォルダに「.txt」拡張子が付くことに注意してください。そうしたくない場合は、フォルダを作成する前に切り取ることができます。そうすれば、作成しようとしているフォルダーの名前が .txt ファイルとは異なるため、一時フォルダーは必要ありません。例:
for f in $(find . -name '*.txt' | rev | cut -b 5- | rev)