我在下面的目录中有一个文件列表。
/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
任何帮助将不胜感激。谢谢。
答案 0 :(得分: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