使用重命名使用日期模式重命名多个文件

时间:2019-04-19 12:49:31

标签: linux shell rename

我已经阅读了有关此问题的多篇文章,但是所提出的解决方案似乎都不适合我。这可能与错别字或类似的愚蠢有关,但我已经有好几个小时没有发现错误了。

我想重命名很多文件。有两种非常相似的模式。这些文件的命名如下:

xx-xx-xxxx-Protocoll_xx.xx.xxxx.md

或类似这样:

xx-xx-xxxx-Protocoll xx.xx.xxxx.md

我希望他们这样命名:

Protocoll xx.xx.xxxx.md

我尝试了以下配置:

rename -v -n 's/....-..-..-Protocoll_(..\...\.....)\.md/Protocoll $1\.md/' *.md
rename -v -n 's/....-..-..-//' *.md
rename -v -n 's/....-..-..-/' '' *.md
rename -v -n 's/....-..-..-Protocoll_(..\...\.....)\.md' 's/Protocoll $1\.md/' *.md
rename -v -n '....-..-..-Protocoll_(..\...\.....)\.md' 'Protocoll $1\.md' *.md

我总是得到相同的错误代码4。 我正在使用以下版本的renamerename from util-linux 2.33.1

1 个答案:

答案 0 :(得分:0)

重命名将在文件名中保留不匹配的字符。

一个解决方案可能是:

rename -v -n 's/^.*(Proto)/$1/' *.md

或者更好地将" ""_"转换为" "

rename -v -n 's/^.*(Protocoll)./$1 /' *.md