QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 2412|回复: 0

小技巧: 使用shell命令修改多个文件

[复制链接]
发表于 2007-8-21 00:26:49 | 显示全部楼层 |阅读模式
小技巧: 使用shell命令修改多个文件

http://blog.zhaoke.com/141.html


注: 下面所有命令已在bash shell环境中测试

实例一: 修改当前目录所有的*.php5为*.php文件.

方法一

for old in *.php5; do cp $old `basename $old .php5`.php; done

使用循环语句发现当前目录的所有*.php5文件, 然后一个接一个的修改为*.php文件, 直到结束.
比如当前目录存在两个*.php5文件:
$ ll
total 8
-rw-rw-r– 1 zhaoke zhaoke 3 Aug 20 07:58 islab.php5
-rw-rw-r– 1 zhaoke zhaoke 3 Aug 20 08:10 zhaoke.php5

首先找到当前目录的islab.php5文件, 然后拷贝islab.php5, ‘basename islab.php5 .php5′ .php
basename将返回”islab”字符, 然后增加.php到islab后面, 最后你得到islab.php文件.


shell命令运行后的当前目录:
$ for old in *.php5; do cp $old `basename $old .php5`.php; done
$ ll
total 16
-rw-rw-r– 1 zhaoke zhaoke 3 Aug 20 08:39 islab.php
-rw-rw-r– 1 zhaoke zhaoke 3 Aug 20 07:58 islab.php5
-rw-rw-r– 1 zhaoke zhaoke 3 Aug 20 08:39 zhaoke.php
-rw-rw-r– 1 zhaoke zhaoke 3 Aug 20 08:10 zhaoke.php5

你也可以修改shell命令中的cp为mv:
$ for old in *.php5; do mv $old `basename $old .php5`.php; done
$ ll
total 8
-rw-rw-r– 1 zhaoke zhaoke 3 Aug 20 07:58 islab.php
-rw-rw-r– 1 zhaoke zhaoke 3 Aug 20 08:10 zhaoke.php

方法二
$ rename .php5 .php *.php5

方法三
for x in *.php5; do n=${x/.php5/.php}; mv $x $n; done

方法四
for a in *php5 ; do mv $a ${a%%5} ; done

方法五
for a in *.php5; do t=`echo $a | sed ’s/.php5$/.php/’`; mv $a $t; done

实例二: 把当前目录下所有文件及目录名中的大写字符改为小写符号

方法一:
1. 创建一个ucase脚本, 内容如下:
#!/bin/bash
# All names are converted to lower-case before matching
# [A-Z]* matches upper case names
for i in [A-Z]*
do
j=`echo $i | tr ‘[A-Z]’ ‘[a-z]’`
mv $i $j
done

2. 赋予ucase脚本可执行权限
$ chmod +x ucase

3. 列出当前目录下的所有文件及目录
$ ll
total 16
-rw-rw-r– 1 zhaoke zhaoke 3 Aug 20 08:42 Islab.php
-rwxrwxr-x 1 zhaoke zhaoke 187 Aug 20 08:54 ucase
drwxrwxr-x 2 zhaoke zhaoke 4096 Aug 20 08:54 ZhaoKe
-rw-rw-r– 1 zhaoke zhaoke 3 Aug 20 07:58 zhaoke.php

4. 运行ucase脚本并查看结果
./ucase
mv: `ucase’ and `ucase’ are the same file
mv: `zhaoke.php’ and `zhaoke.php’ are the same file
$ ll
total 16
-rw-rw-r– 1 zhaoke zhaoke 3 Aug 20 08:42 islab.php
-rwxrwxr-x 1 zhaoke zhaoke 187 Aug 20 08:54 ucase
drwxrwxr-x 2 zhaoke zhaoke 4096 Aug 20 08:54 zhaoke
-rw-rw-r– 1 zhaoke zhaoke 3 Aug 20 07:58 zhaoke.php

方法二:
$ rename ‘y/A-Z/a-z/’ *
您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-12-1 18:31 , Processed in 0.095742 second(s), 16 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表