使用awk或bash将文件从一个目录移动到另一个目录

时间:2012-09-18 01:35:52

标签: bash awk

我有一个包含1000个以上文件夹的目录。该目录的每个文件夹都包含一个文本文件。我想将文本文件从这些文件夹移动到另一个目录。但是新目录中文本文件的名称应该是从中提取文件的文件名。

如何使用awk或bash执行此操作?

3 个答案:

答案 0 :(得分: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)

答案 1 :(得分:0)

for i in $(find  . -maxdepth 2 -mindepth 2 -type f ); do 
    mv  $i $YOUR_DIR/$(dirname $i); 
done

答案 2 :(得分:0)

这应该有用。

find ./*/ -name "*.txt" | nawk -v new_dir="new_dir" -F/ 'NF==3{cmd="mv ""\""$0"\" " new_dir"/"$2;system(cmd);}'