从文件名的开头删除一串数字或文本

问题描述 投票:-1回答:1

在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

macos rename macos-sierra file-rename batch-rename
1个回答
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正则表达式。

© www.soinside.com 2019 - 2024. All rights reserved.