regex 使用带bash的正则表达式重命名文件[duplicate]

2w3rbyxf  于 2023-01-27  发布在  其他
关注(0)|答案(4)|浏览(112)
    • 此问题在此处已有答案**:

13年前就关闭了。

    • 可能重复:**

rename multiple files at once in unix
我想使用正则表达式重命名文件夹中的所有文件(在名称末尾添加一个名称),并移动到另一个文件夹。
依我之见,它应该是这样的:

mv -v ./images/*.png ./test/*test.png

但它不起作用。
谁能给我一个建议?

wrrgggsh

wrrgggsh1#

如果你使用的是linux,检查一下rename命令,它可以做到这一点--使用正则表达式重命名。

rename 's/^images\/(.+)/test\/$1.png/s' images/*.png

否则,按照catwalk的建议在文件名上写一个bash循环。

m1m5dgzv

m1m5dgzv2#

试试这个:

for x in *.png;do mv $x test/${x%.png}test.png;done
ukxgm1gy

ukxgm1gy3#

$ for old in ./images*.png; do
    new=$(echo $old | sed -e 's/\.png$/test.png/')
    mv -v "$old" "$new"
  done
w8f9ii69

w8f9ii694#

另一种解决方案是一种名为mmv的工具:

mmv "./images/*.png" "./test/#1test.png"

相关问题