假设我有一个无组织目录,其中有数千个文件,其名称中包含前缀,如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
许多人从Advanced Bash Scripting Guide开始学习shell脚本.有关这些程序的详细信息,请查看cut
和uniq
手册页.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。