【发布时间】:2011-01-23 06:47:55
【问题描述】:
目标
更改这些文件名:
- 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/'
执行:
ls F00001-0708-*|sed 's/\(.\).\(.*\)/mv & \1\2/' | sh
我的问题
我不明白 sed 代码。我明白什么是替代品 命令
$ sed 's/something/mv'
的意思。而且我对正则表达式有所了解。但我不 了解这里发生了什么:
\(.\).\(.*\)
或这里:
& \1\2/
在我看来,前者的意思是:“一个字符, 后跟一个字符,后跟一个任意长度的序列 单个字符”——但肯定不止于此。至于 后半部分:
& \1\2/
我不知道。
【问题讨论】:
标签: bash shell sed file-rename