相关疑难解决方法(0)

使用sed批量重命名文件

目的

更改这些文件名:

  • F00001-0708 RG-biasliuyda
  • F00001-0708-CS-akgdlaul
  • F00001-0708-VF-hioulgigl

这些文件名:

  • F0001-0708-RG-biasliuyda
  • F0001-0708-CS-akgdlaul
  • F0001-0708-VF-hioulgigl

壳牌代码

去测试:

ls F00001-0708-*|sed 's/\(.\).\(.*\)/mv & \1\2/'
Run Code Online (Sandbox Code Playgroud)

去表演:

ls F00001-0708-*|sed 's/\(.\).\(.*\)/mv & \1\2/' | sh
Run Code Online (Sandbox Code Playgroud)

我的问题

我不明白sed代码.我理解替换命令是什么

$ sed 's/something/mv'
Run Code Online (Sandbox Code Playgroud)

手段.我有点理解正则表达式.但我不明白这里发生了什么:

\(.\).\(.*\)
Run Code Online (Sandbox Code Playgroud)

或者在这里:

& \1\2/
Run Code Online (Sandbox Code Playgroud)

对我来说,前者看起来就像是:"一个角色,后跟一个角色,然后是单个角色的任何长度序列" - 但肯定还有更多的东西.至于后一部分:

& \1\2/
Run Code Online (Sandbox Code Playgroud)

我不知道.我真的很想了解这段代码.伙计们,请帮帮我.

bash shell sed file-rename

74
推荐指数
6
解决办法
13万
查看次数

标签 统计

bash ×1

file-rename ×1

sed ×1

shell ×1