替换多个文件名中的单词

问题描述 投票:-1回答:1

我有这个文件名:

BG60UFL-GBR_EarlsdonMSIN_2017-12-18_22-19-44-785_APPROACH.jpg

它需要用whis替换:

BG60UFL-GBR__2017-12-18_22-19-44-785.jpg

这是我试过的:

sed 's#\\Earlsdon##g' file1 >  file2
sed grep rename
1个回答
1
投票

你可以用这个:

rename 's/^(BG60UFL-GBR_)\w+(_(\d|-|_)+)_\w+\.jpg/$1$2.jpg/' *.jpg

我不知道哪些部分是可变的,然后我会向你解释一下,也许你有改变以适应一点点。

rename是linux的命令,在第一个参数是正则表达式,以获取匹配的文件和名称你想要的。第二个参数是要重命名的文件。在我的例子中你可以看到:

  1. ^(BG60UFL-GBR_)\w+(_(\d|-|_)+)_\w+\.jpg。我正在使用正则表达式来获取我想要的新部件。 ()里面的部分是组,你可以在第二部分使用它。然后我正在保存我想要的零件。
  2. $1$2.jpg这是新名称。 $1()内部的第一部分,在这种情况下:BG60UFL-GBR_$2_2017-12-18_22-19-44-785
  3. *.jpg是意味着的模式(我希望在当前目录中使用extension.jpg的所有文件中应用它)
© www.soinside.com 2019 - 2024. All rights reserved.