我想在 Mac OS X (10.7.2) 上重命名很多文件。我没有rename命令的 perl 包。
我的文件名称类似于“T452-102456-0.png”,我想删除“-0”部分。我知道我可以通过编写自己的 php-cli 脚本来完成此操作,但我想知道一个更简单、更快捷的解决方案。
man*_*ork 21
Bash 或 Ksh 一起mv可以解决它:
for f in *.png; do mv -n "$f" "${f/-0}"; done
Run Code Online (Sandbox Code Playgroud)
如果文件名在第一个破折号后也可能有“0”并且“-0”总是在点之前,您可能希望在表达式中也包含该点:
for f in *.png; do mv -n "$f" "${f/-0./.}"; done
Run Code Online (Sandbox Code Playgroud)
但是由于重命名规则很简单,如果您rename从util-linux包中获得,也可以这样做:
rename '-0.' '.' *.png
Run Code Online (Sandbox Code Playgroud)
简单方法:仅当前目录中的文件
使用 zsh:
autoload zmv
zmv '(*)-0(.png)' '$1$2'
Run Code Online (Sandbox Code Playgroud)
与其他贝壳:
for x in *-0.png; do mv -- "$x" "${x%-0.*}.png"; done
Run Code Online (Sandbox Code Playgroud)
增强方法:当前目录和/或子目录中的文件
使用 zsh:
zmv '(**/)(*)-0(.png)' '$1$2$3'
Run Code Online (Sandbox Code Playgroud)
使用 ksh93:
set -o globstar
for x in **/*-0.png; do mv -- "$x" "${x%-0.*}.png"; done
Run Code Online (Sandbox Code Playgroud)
使用 bash ?4,同上,但使用shopt -s globstar代替set命令。
与其他贝壳:
find -name '*-0.png' -exec sh -c 'for x; do mv -- "$x" "${x%-0.*}.png"; done' _ {} +
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
27687 次 |
| 最近记录: |