1
下面是当前文件夹结构:如何从文件名中删除所有非数字字符递归
/home/ubuntu/Desktop/pictures/
/home/ubuntu/Desktop/pictures/folder1
/home/ubuntu/Desktop/pictures/folder1/John Doe - 1234567.JPG
/home/ubuntu/Desktop/pictures/folder2
/home/ubuntu/Desktop/pictures/folder2/Homer Simpson - 7654321.jpg
/home/ubuntu/Desktop/pictures/folder2/Lisa Simpson - 321456.jpg
/home/ubuntu/Desktop/pictures/folder3
/home/ubuntu/Desktop/pictures/folder3/Foo Bar - 234123.JPG
/home/ubuntu/Desktop/pictures/folder3/Bar Foo - 876542.JPG
我要的是建立通过所有文件夹中的“图片”就不断循环的脚本文件夹并将所有“JPG”和“jpg”文件重命名为它们的数值,以便文件名“John Doe - 1234567.JPG”将变为“1234567.JPG”。
我曾尝试一些shell脚本,但我得到了这方面的工作,只有当JPG文件是一个文件夹中:
[email protected]:~/Desktop/pictures/in_one_folder$ ls
John Doe - 1234567.JPG Foo Bar - 234123.JPG
Homer Simpson - 7654321.jpg Bar Foo - 876542.JPG
Lisa Simpson - 321456.jpg script.sh
启动这个脚本:
for f in *JPG *jpg;
do
file=$f
remove_non_numeric=$(echo "$file" | sed 's/[^0-9]*//g')
add_extension="$remove_non_numeric.jpg"
echo "$add_extension"
mv "$file" "$add_extension"
done
而这里的结果:
[email protected]:~/Desktop/pictures/in_one_folder$ ls
1234567.jpg 234123.jpg
7654321.jpg 876542.jpg
321456.jpg script.sh
所以这就做了它应该做的。现在的问题是,我怎么能设置它来循环通过文件夹。或者如果没有办法修改我想出来的代码(一个新手试图学习,哈哈),那么我会欣赏其他方式来实现结果。虽然我试图在Linux上完成这项工作,但Windows的方法也可以。
感谢您的帮助!