Bash:重命名名称中间的多个文件的一小部分

cc2*_*211 18 bash

我只想改变这个

cc211_AMBER_13062012i.II  cc211_GROMOS_13062012i.II
cc211_CHARM_13062012i.II  cc211_OPLS_13062012i.II
Run Code Online (Sandbox Code Playgroud)

cc211_AMBER_15062012i.II  cc211_GROMOS_15062012i.II
cc211_CHARM_15062012i.II  cc211_OPLS_15062012i.II
Run Code Online (Sandbox Code Playgroud)

我试过了,

find -name "*.13 *" | xargs rename ".13" ".15"
Run Code Online (Sandbox Code Playgroud)

3和第二个星号之间通常没有空间,这就是我所能看到的斜体.基本上有很多答案可以解释当它在文件名末尾时做什么,其中asterix似乎有效,但在这里我无法使其工作.

你得到的任何东西都会让我的生活变得更轻松!

编辑1:试用

-bash-4.1$ ls

cc211_AMBER_13062012.II  cc211_GROMOS_13062012.II
cc211_CHARM_13062012.II  cc211_OPLS_13062012.II

-bash-4.1$ rename 's/_13/_15/' cc*
-bash-4.1$ ls

cc211_AMBER_13062012.II  cc211_GROMOS_13062012.II
cc211_CHARM_13062012.II  cc211_OPLS_13062012.II 
Run Code Online (Sandbox Code Playgroud)

谢谢,

查理

Ant*_*ony 25

这个怎么样:

for i in *.II; do mv $i $(echo $i | sed 's/_13/_15/g'); done
Run Code Online (Sandbox Code Playgroud)

这将替换_13_15所有带扩展名的文件.II

关于sed的更多信息在这里.


che*_*ner 19

纯粹的bash解决方案:

for i in cc*; do
  mv "$i" "${i/_13/_15}"
done
Run Code Online (Sandbox Code Playgroud)


Joh*_*nce 6

rename 's/_13/_15/' cc*
Run Code Online (Sandbox Code Playgroud)

应该做你想做的.正则表达式s/_13/_15/替换_13_15以'cc'开头的所有文件.

$ ls
cc211_AMBER_13062012.II  cc211_GROMOS_13062012.II
cc211_CHARM_13062012.II  cc211_OPLS_13062012.II

$ rename 's/_13/_15/' cc*

$ ls
cc211_AMBER_15062012.II  cc211_GROMOS_15062012.II
cc211_CHARM_15062012.II  cc211_OPLS_15062012.II
Run Code Online (Sandbox Code Playgroud)

这只适用于较新的perl版本rename.检查您的版本man rename.如果页面顶部显示

Perl程序员参考指南

你有perl版本.如果它说:

Linux程序员手册

你有标准(旧版)版本.

对于旧版本,命令应为:

rename _13 _15 cc*
Run Code Online (Sandbox Code Playgroud)

  • `rename`是在perl软件包的命令行工具,也被称为'prename`.It可以使用无限复杂的perl的表达,所以`女士prename -n"使用LWP ::简单;我的$ HTTP GET =("HTTP:/ /airport-authority.com/browse-FR");而($ HTTP =〜米/>([^ <>] +)<\/A> \((\ W\W\W)\)/ GC) {my $ from = $ 2; my $ = $ 1; $ to = ~s// _/g; s/$ from/$ to/g};' MRS_DOLLY_PARTON.MP3 PUFF_DADDY.MP3`将重命名文件名法国空军端口名称三个字母的代码用下划线,在这种情况下,两个MP3歌曲被重命名`Marseille_Airport_St_Gatien_AirportLY_PARTON.MP3`和`Uzein_AirportF_DADDY.MP3`. (3认同)