我需要在文件夹中重命名PDF。有人不断用不同的文件名发送给我。但是,最后一位或两位数是好的。它们应该是相同的。
等等。仅保留最后一个数字,
我试图用正则表达式代替结果,但是没有运气。当我使用sed's / 2017 / foo /'之类的代码时,该代码有效。但是我需要结果中.pdf之前的最后一个数字的模式..什么是错误,我在做什么错?
#!/bin/bash
find /home/foo/bar/ -type f -iname "NK*" -print0 | while read -d $'\0' f
do
mv "$f" "`echo $f | sed 's/.+\([0-9]{1,3}\.pdf\)/number\1/'`";
done
将mv
命令更改为此:
mv "$f" "$(echo "$f" | sed 's/.*[^0-9]\([0-9]\{1,3\}\.pdf\)/number\1/')"
基本正则表达式不支持以下内容:
.+
(.*
改为使用){m,n}
(\{m,n\}
改为使用)本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句