次の文字列を使用して、大きなファイル (2.8G) を小さなファイル (284 ファイルの .txt) のリストに分割しました。
split -a 3 -C 10m -d 2 file.txt output_
find . -type f -exec mv '{}' '{}'.txt \;
次に、284 個のファイルのそれぞれを対応するフォルダーに入れたいので、284 個のフォルダーのリストを作成しました。私が使用した文字列は次のとおりです。
for num in {1..284}; do
mkdir output$num
done
フォルダー内の各ファイルをコピーするための文字列は次のとおりです。
for i in *.txt do
dir=${i%.txt}
cp "$i" "$dir"
done
問題は、最初のファイルの名前が output_000.txt で、フォルダーの名前が output_0 であるため、各ファイルを対応するフォルダーに配置することです。これは、0 から 100 までのファイルで発生します。
どうすればこの問題を解決できますか?