从文件名的开头删除一串数字或文本
Remove A String of Numbers or Text From The Beginning of A Filename
在 MacOS Sierra (MacBook Pro) 上,如何批量删除 .pdf 文件名开头的随机数字字符串,以便可以按字母顺序查看它们?例如这是这些文件如何显示在 Finder 中的示例,其中数字影响字母顺序:
22169203 Gregory Zuckerman 有史以来最伟大的交易 Excerpt.pdf
22681256 示例 PDF 获取 Money.pdf
24225401印度电影Industry.pdf
24309156 开始 运行 你自己的咖啡店和午餐 Bar.pdf
24375874 古典音乐训练的 5 个步骤 Riyaz.pdf
24538682 100 口头 Signals.pdf
24861279 100 最伟大 Songs.pdf
24975456 预约簿Preview.pdf
25169832 如何为 Free.pdf
创业
25283738建筑现代公关Campaigns.pdf
26672829 World.pdf
中最大的股票市场
26852793 Nnadi 为股票初学者提供的秘密实用指南免费电子书 Jane.pdf
27012881 食物的价值和价格 Carlo 的 Terra Madre 节选 Petrini.pdf
27114721 社交媒体营销 Services.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。它比我在 post.
中解释得更清楚
mv
命令将第一个参数(在本例中为具有原始名称的 PDF)移动到在最后一个参数中指定的目标(在本例中为正则表达式的第二个捕获组)。 BASH_REMATCH
是一个数组,存放正则表达式运算的结果。在这种情况下,我们使用了第二个索引,它存储文件名减去前缀数字。 This article 更详细地解释了 bash 正则表达式。
在 MacOS Sierra (MacBook Pro) 上,如何批量删除 .pdf 文件名开头的随机数字字符串,以便可以按字母顺序查看它们?例如这是这些文件如何显示在 Finder 中的示例,其中数字影响字母顺序:
22169203 Gregory Zuckerman 有史以来最伟大的交易 Excerpt.pdf
22681256 示例 PDF 获取 Money.pdf
24225401印度电影Industry.pdf
24309156 开始 运行 你自己的咖啡店和午餐 Bar.pdf
24375874 古典音乐训练的 5 个步骤 Riyaz.pdf
24538682 100 口头 Signals.pdf
24861279 100 最伟大 Songs.pdf
24975456 预约簿Preview.pdf
25169832 如何为 Free.pdf
创业25283738建筑现代公关Campaigns.pdf
26672829 World.pdf
中最大的股票市场26852793 Nnadi 为股票初学者提供的秘密实用指南免费电子书 Jane.pdf
27012881 食物的价值和价格 Carlo 的 Terra Madre 节选 Petrini.pdf
27114721 社交媒体营销 Services.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。它比我在 post.
中解释得更清楚mv
命令将第一个参数(在本例中为具有原始名称的 PDF)移动到在最后一个参数中指定的目标(在本例中为正则表达式的第二个捕获组)。 BASH_REMATCH
是一个数组,存放正则表达式运算的结果。在这种情况下,我们使用了第二个索引,它存储文件名减去前缀数字。 This article 更详细地解释了 bash 正则表达式。