假设我有一个无组织的目录,其中有数千个文件,这些文件的名称中带有前缀,例如 abc-tab、abc-vib、h12-123、h12-498.... 如何将具有相同前缀的文件移动到自己的目录中?
我正在考虑使用类似的东西
find . -path '*/support/*abc*' -exec mv "{}" /new/abc\;
但这意味着我必须为每个前缀重新输入命令。
ls使用和获取所有前缀uniq以获得单个列表,然后使用 for 循环移动文件。
for F in $(ls | cut -d- -f1 | uniq); do
    mkdir "${F}" && mv "${F}"-* "${F}"
done
许多人从《高级 Bash 脚本指南》学习 shell 脚本。查看cut和uniq手册页以获取有关这些程序的详细信息。