我想替换文件名中的句号,但是我需要删除一些并替换其他的。
文件名的结构如下:
AA M12345678 SOMEWORD 20.08.2019 .pdf
AA M12345678 SOMEWORD1 SOMEWORD2 20.08.2019 .pdf
我希望格式如下:
AA M12345678 SOMEWORD 20-08-2019 .pdf
AA M12345678 SOMEWORD1 SOMEWORD2 20-08-2019 .pdf
所以应该删除第一个句号,但日期中遇到的句号应该是连字符 (-)。
我一直在使用命令提示符,但我遇到了一些问题,因为我对正则表达式还很陌生。
我曾尝试通过只专注于替换日期格式来一步一步地解决问题。
我已经使用https://regexr.com/测试了我的正则表达式,它匹配正确。
[0-9]\K[.]
我对上面代码的理解应该与日期中的句号相匹配。
但是,当我运行以下命令时:
ren * [0-9] \ K [.].pdf -
它无法找到该文件。
AA M12345678 SOMEWORD 20-08-2019 .pdf
当我使用 REN 命令时,我使用的表达式仅返回此错误。
“文件名、目录名或卷标语法不正确。”
很确定您可以在命令行中执行sed
以下操作。运行以下命令:
sed -i "s/(\d\d)\.(\d\d)\.(\d\d\d\d)/\1-\2-\3 ; s/^(.)\.(.*)/\1\2/" <YOUR_FILE>
该-i
标志用于就地修改。在这里,我在每一行上运行两个单独的搜索和替换功能;第一个是匹配一个日期,然后相应地格式化它,第二个是匹配你的A.A
元数据并相应地格式化它。
更多关于捕获组在这里。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句