替换多个文件名中的单词

时间:2017-12-21 15:53:57

标签: sed grep rename

我有这个文件名:

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

1 个答案:

答案 0 :(得分: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的所有文件中应用它)