Erw*_*ann 1 find parameter rename
我希望这会奏效:
$ find . -type f -exec basename {} \; | while EFS= read -r f; do echo "${f##[0-9]}"; done
Run Code Online (Sandbox Code Playgroud)
但是,例如,对于命名为:
1foo
11bar
它返回:
foo
1bar
什么时候
富
吧
是期待。
PS:归根结底,我要mv "$f"修改名字(还要做其他修改)
编辑:
PS2:如果您考虑PS,它不是重复的。无论如何,标记为检查的答案让我满意。
如果rename(有时称为prename)是一个选项:
find . -name '[[:digit:]]*' -type f -exec rename 's:^(.*/)\d+([^/]*)\z:\1\2:s' {} +
Run Code Online (Sandbox Code Playgroud)
解释:
( ) 括号内的花样被保存,可按出现次数调出.*/ 必须保留目录部分([^/]*)\z: 直到主题结束的所有非/字符。\1\2 重新打印捕获的目录以及输出名称中数字之后的所有内容您可以使用-nin 选项rename先进行试运行以检查结果。
| 归档时间: |
|
| 查看次数: |
936 次 |
| 最近记录: |