在 MacOS Sierra (MacBook Pro) 上,如何批量删除 .pdf 文件名开头的随机数字字符串,以便按字母顺序查看它们?例如,这是这些文件如何在 Finder 中显示的示例,其中的数字会影响字母顺序:
22169203 Gregory Zuckerman 有史以来最伟大的交易摘录.pdf
22681256 样本 PDF 拿钱.pdf
24225401 印度电影工业.pdf
24309156 开办并经营自己的咖啡店和午餐吧.pdf
24375874 古典音乐培训的 5 个步骤 Riyaz.pdf
24538682 100 语言信号.pdf
24861279 100 首最伟大的歌曲.pdf
24975456 预约书预览.pdf
25169832 如何免费创业.pdf
25283738 建立现代公关活动.pdf
26672829 世界上最大的股票市场.pdf
26852793 关于股票初学者秘密实用指南的免费电子书 Nnadi Jane.pdf
27012881 食物的价值和价格 摘自 Carlo Petrini 的 Terra Madre.pdf
27114721 社交媒体营销服务.pdf
27881968 简介3.pdf
28097572电影PDF.pdf
这个小 shell 脚本将使用顶部定义的正则表达式重命名文件,删除名称前面的数字。请注意,此脚本应在与 PDF 相同的目录中运行,否则您将需要更改 for 循环中的目录。
#!/bin/bash
regex="([0-9]*.)(([a-zA-Z0-9]*|.*)*\.pdf)"
for filename in *.pdf; do
if [[ $filename =~ $regex ]]
then
mv "$filename" "${BASH_REMATCH[2]}"
fi
done
解释
可以在此处找到所用正则表达式的详细分类。它比我在这篇文章中更清楚地解释了事情。
该mv
命令将第一个参数(在本例中为 PDF 及其原始名称)移动到最后一个参数中指定的目标(在本例中为正则表达式的第二个捕获组)。BASH_REMATCH
是一个数组,用于存储正则表达式运算的结果。在这种情况下,我们使用了存储文件名减去前缀数字的第二个索引。本文更详细地解释了 bash 正则表达式。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句