我有一个包含 1000 多个文件夹的目录。该目录的每个文件夹都包含一个文本文件。我想将这些文件夹中的文本文件移动到另一个目录。但是新目录中文本文件的名称应该是提取它的文件夹的名称。
如何使用 awk 或 bash 执行此操作?
您可以使用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)
。
for i in $(find . -maxdepth 2 -mindepth 2 -type f ); do
mv $i $YOUR_DIR/$(dirname $i);
done
这应该有效。
find ./*/ -name "*.txt" | nawk -v new_dir="new_dir" -F/ 'NF==3{cmd="mv ""\""$0"\" " new_dir"/"$2;system(cmd);}'