在MacOS Sierra(MacBook Pro)上,如何从.pdf文件名的开头删除随机数字串作为批处理,以便按字母顺序查看它们?对于例如这是这些文件在Finder中如何显示的示例,其中的数字会影响字母顺序:
22169203格雷戈里·祖克曼史上最伟大的交易摘录.pdf
22681256样本PDF获取Money.pdf
24225401印度电影业.pdf
24309156启动并经营自己的咖啡店和午餐吧.pdf
24375874古典音乐训练的5个步骤Riyaz.pdf
24538682 100 Verbal Signals.pdf
24861279 100 Greatest Songs.pdf
24975456预约预约.pdf
25169832如何开展Free.pdf业务
25283738建立现代公关活动.pdf
26672829最大的股票市场在世界上播放.pdf
26852793免费电子书关于股票初学者秘密实用指南Nnadi Jane.pdf
27012881食品的价值和价格来自Terra Madre的Carlo Petrini.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
说明
所使用的正则表达式的详细分类可以在here找到。它比我在这篇文章中更清晰地解释了事情。
mv
命令将第一个参数(在本例中为PDF及其原始名称)移动到最终参数中指定的目标(在本例中为正则表达式的第二个捕获组)。 BASH_REMATCH
是一个存储正则表达式操作结果的数组。在这种情况下,我们使用第二个索引来存储文件名减去前缀数。 This article更详细地解释了bash正则表达式。