Jos*_*ibs 48 linux file-management regex rename
例如我想mv (.*?).sql $1.php,
是否有一个命令可以让我指定重命名模式?
小智 34
正如其他人所提到的,rename它擅长于此,但man rename在尝试之前请阅读手册页 ( )。至少有两种完全不同的工具被称为rename,你拥有哪一种取决于你的发行版。错误地调用它们可能很危险。
这是Larry Wall 随 Ubuntu 一起提供的基于 perl 版本的手册页。你给它一个 perl 表达式rename 's/\.sql$/.php/' *.sql
这是旧 Red Hat 和 CentOS 发行版附带的重命名手册页。用法是简单的字符串替换,如rename .sql .php *.sql
您还可以使用 bash one-liner 一次处理一个文件:
$ for f in *.sql; do mv -i "$f" "${f%%.*}.php"; done
Run Code Online (Sandbox Code Playgroud)
Ada*_*eld 10
有rename(1),它不使用正则表达式,但可以解决您的问题:
rename .sql .php *.sql
Run Code Online (Sandbox Code Playgroud)
还有mmv(1),但我不熟悉它的工作原理。
小智 6
G'day,
您也可以尝试输入
for i in $(\ls -d *.sql)
do
mv $i $(echo $i | sed -e 's/\.sql$/\.php/')
done
Run Code Online (Sandbox Code Playgroud)
或者让它使用正则表达式的稍微改变它
for i in $(\ls -d | egrep -e '.*\.sql')
do
mv $i $(echo $i | sed -e 's/\.sql$/\.php/')
done
Run Code Online (Sandbox Code Playgroud)
一些 shell 编码的乐趣。(-:
| 归档时间: |
|
| 查看次数: |
58516 次 |
| 最近记录: |