gpt4 book ai didi

linux - 如何使用正则表达式重命名 linux shell 中的文件?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:58:38 28 4
gpt4 key购买 nike

我有一些文件:

/var/www/media/0001/0001_123456_12.jpg
/var/www/media/0002/0002_123456_12.jpg
/var/www/media/0003/0003_123456_12.jpg

我想将它们重命名为:

/var/www/media/0001/0001_test.jpg
/var/www/media/0002/0002_test.jpg
/var/www/media/0003/0003_test.jpg

我的想法是找到第一个 _,删除文件的其余部分直到 . 然后添加 test

有什么想法吗?

最佳答案

find /var/www/media/ -name \*.jpg -exec sh -c '
a=$(echo {} | sed s/_123456_/_/);
[ "$a" != "{}" ] && mv "{}" "$a" '

您在 /var/www/media 中找到所有 jpg 文件并为每个文件运行命令:

a=$(echo {} | sed s/_123456_/_/)
[ "$a" != "{}" ] && mv "{}" "$a"

执行此命令后,a 变量已重写了其中文件的名称:

a=$(echo {} | sed s/_123456_/_/)

我们比较 a 变量和 realname ({}),它们不相等必须重命名该文件。

关于linux - 如何使用正则表达式重命名 linux shell 中的文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11850943/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com