需要单独更改文件名中的日期

需要单独更改文件名中的日期

我想根据日期列出文件并单独更改目录中文件中的日期

现在的文件:

abc051217.log

xyz051217.log

ccc051217.log

ddd051217.log

在上面我只想选择仅需要重命名日期的文件,如下所示

之后的文件:

abc021217.log

xyz021217.log

ccc021217.log

ddd021217.log

有什么解决办法吗?

答案1

你可以使用mmv.mmv使用带有“?”的标准 shell 模式匹配单个字符,“*”匹配 0 个或多个字符,这些字符在目标模式中用“#”+数字(从 1 开始)引用。

所以在你的用例中

mmv -n '*??????.log' '#102#4#5#6#7.log'

该选项-n是空运行的,因此mmv实际上不会删除您的文件,而只是打印出它将执行的操作。验证它确实达到了您想要的效果后,再次运行不带-n.

答案2

将所有要重命名的文件放入test.txt test.txt

abc051217.log
xyz051217.log
ccc051217.log
ddd051217.log

使用下面的代码根据要求重命名。

代码 。


i=021217;sed '/^$/d' test.txt|awk -v i="$i"  '{print "mv" " " $1 " " substr($1,1,3)i".log"}'  | sh

输出

abc021217.log
xyz021217.log
ccc021217.log
ddd021217.log

相关内容