Shell 使用BASH使用"_&引用;文件名中的分隔符
我觉得我想做的事情很简单,但我是shell脚本的新手,所以我非常感谢您能给我的任何帮助 问题:我有一个文件夹,包含各种文件类型的文件(即“.jpg”、“.psd”、“.png”),需要将这些文件组织到子目录中。每个文件的文件名遵循相同的约定:“number_name.extension”。几个文件共享相同的“number”值,我希望脚本所做的是创建一个具有“number”值的文件夹(如果它还不存在),并将所有具有相同“number”值的文件移动到所述文件夹中,而不考虑文件类型/扩展名 我知道这在伯恩身上是可能的,但我很难理解。我到处寻找类似的线索,但似乎没有什么能满足我问题中的所有条件。任何帮助都将不胜感激 那么:Shell 使用BASH使用"_&引用;文件名中的分隔符,shell,filenames,delimiter,organization,subdirectory,Shell,Filenames,Delimiter,Organization,Subdirectory,我觉得我想做的事情很简单,但我是shell脚本的新手,所以我非常感谢您能给我的任何帮助 问题:我有一个文件夹,包含各种文件类型的文件(即“.jpg”、“.psd”、“.png”),需要将这些文件组织到子目录中。每个文件的文件名遵循相同的约定:“number_name.extension”。几个文件共享相同的“number”值,我希望脚本所做的是创建一个具有“number”值的文件夹(如果它还不存在),并将所有具有相同“number”值的文件移动到所述文件夹中,而不考虑文件类型/扩展名 我知道这在
for f in *; do mkdir -p ${f%%_*}; mv $f ${f%%_*}; done
这将保留完整的文件名,但您可能希望修剪数字:
for f in *; do
dir=${f%%_*}
mkdir -p $dir
mv $f $dir/${f#*_}
done
这很简单,很漂亮,珀塞尔先生。非常感谢你!