在MacOS Sierra(MacBook Pro)上,如何从.pdf文件名的开头删除随机数字串作为批处理,以便按字母顺序查看?对于例如这是这些文件在Finder中的显示方式的示例,其中的数字会影响字母顺序:
22169203 Gregory Zuckerman有史以来最伟大的交易摘录.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如何免费创业.pdf
25283738建立现代公关活动.pdf
26672829最大的股票市场在世界上播放.pdf
26852793免费电子书关于股票初学者秘密实用指南Nnadi Jane.pdf
27012881食物的价值和价格来自Terra Madre的摘录Carlo Petrini.pdf
27114721社交媒体营销服务.pdf
27881968简介3.pdf
28097572电影PDF.pdf
答案 0 :(得分:0)
这个小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正则表达式。