1

我在如下目录中有一个文件列表。

/file1 - filename1.txt
/file2 - filename2a.txt
/file2 - filename2b.txt
/file3 - filename3.txt
/file4 - filename4.txt
/file5 - filename5.txt

我正在尝试创建一个脚本,该脚本将解析指定目录或工作目录中的文件,从破折号之前的文件名创建文件夹,如果它们不存在,则忽略该文件。然后脚本将在新创建的子目录中移动该文件名。

例如,列表最终将如下所示。

/file1/file1 - filename1.txt
/file2/file2 - filename2a.txt
/file2/file2 - filename2b.txt
/file3/file3 - filename3.txt
/file4/file4 - filename4.txt
/file5/file5 - filename5.txt

任何帮助,将不胜感激。谢谢你。

4

1 回答 1

1
#!/bin/bash
for f in filename*
do
   d=$( echo $f | sed 's/filename\([0-9]*\).*/file\1/')
   [ -d $d ] || mkdir $d
   mv $f $d
   echo "$f moved to $d"
done
于 2013-04-04T11:15:03.017 回答