如何从文件夹中的文件名中删除一些文本?
我目前正在尝试:
rename s/"NEWER_(.*?)"//g *
但是没有什么被重命名
我有一个父文件夹,文件中有一堆子文件夹,OneDrive认为将“(NEWER_timestamp)”附加到该文件夹是一个好主意,我想删除该文件夹。
示例文件名:
getyou.ico (NEWER_1417529079.87)
o7pm.ico (NEWER_1417529184.89)
o7th.ico (NEWER_1417529135.81)
请尝试以下方法:
find /path/to/parrent-dir -type f -exec rename -n 's:[^/]*(.*) .*$:$1:' {} +
./o7th.ico (NEWER_1417529135.81) renamed as /o7th.ico
./sub-dir (NEWER_1417529135.81)/getyou.ico (NEWER_1417529079.87) renamed as /sub-dir (NEWER_1417529135.81)/getyou.ico
./sub-dir (NEWER_1417529135.81)/o7pm.ico (NEWER_1417529184.89) renamed as /sub-dir (NEWER_1417529135.81)/o7pm.ico
./getyou.ico (NEWER_1417529079.87) renamed as /getyou.ico
./o7pm.ico (NEWER_1417529184.89) renamed as /o7pm.ico
[^/]*(.*) .*$
仅匹配不包含的路径的最后一部分/
。和(.*)
是一组匹配所有在最后/
一个空格之后和一个空格之前的字符
。其后向引用将为$1
。.*$
将所有内容与$
文件名末尾的空格匹配。s/.../REPLACEMENT/
,我们只保留了last\
和与之匹配的空间之间的匹配组(.*)
。本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句