0

1000 を超えるフォルダーを含むディレクトリがあります。このディレクトリの各フォルダには 1 つのテキスト ファイルが含まれています。テキスト ファイルをこれらのフォルダから別のディレクトリに移動したいと考えています。ただし、新しいディレクトリ内のテキスト ファイルの名前は、抽出元のフォルダーの名前にする必要があります。

awkまたはbashでこれを行うにはどうすればよいですか?

4

3 に答える 3

1

forループを使用できます:

for i in <folderlist>; do
    mv $i/*.txt <newfolder>/`basename $i`.txt
done

すべてのフォルダーがルートにある場合は、for i in *またはを使用しますfor i in $(find <root> -type d -maxdepth 1)

于 2012-09-18T01:40:19.223 に答える
0

これはうまくいくはずです。

find ./*/ -name "*.txt" | nawk -v new_dir="new_dir" -F/ 'NF==3{cmd="mv ""\""$0"\" " new_dir"/"$2;system(cmd);}'
于 2012-09-18T08:29:37.307 に答える
0
for i in $(find  . -maxdepth 2 -mindepth 2 -type f ); do 
    mv  $i $YOUR_DIR/$(dirname $i); 
done
于 2012-09-18T01:59:13.593 に答える