[转]linux下shell批量修改文件后缀名

转自http://reeddeer.blog.163.com/blog/static/11817104020128271456476/

1.用rename命令修改后缀名,这个是最简单最省事的办法

[root@demotest_rename]#ll

总计20

-rw-r--r--1rootroot009-2700:57rename1.log

-rw-r--r--1rootroot009-2700:57rename2.log

-rw-r--r--1rootroot009-2700:57rename3.log

-rw-r--r--1rootroot009-2700:57rename4.log

-rw-r--r--1rootroot009-2700:57rename5.log

[root@demotest_rename]#renamelogtxt*.log#把*.log改为*.txt

[root@demotest_rename]#ll

总计20

-rw-r--r--1rootroot009-2700:57rename1.txt

-rw-r--r--1rootroot009-2700:57rename2.txt

-rw-r--r--1rootroot009-2700:57rename3.txt

-rw-r--r--1rootroot009-2700:57rename4.txt

-rw-r--r--1rootroot009-2700:57rename5.txt

[root@demotest_rename]#

2.用for、sed和mv修改后缀名

[root@demotest_rename]#ll

总计20

-rw-r--r--1rootroot009-2701:51rename1.log

-rw-r--r--1rootroot009-2701:21rename2.log

-rw-r--r--1rootroot009-2701:21rename3.log

-rw-r--r--1rootroot009-2701:21rename4.log

-rw-r--r--1rootroot009-2701:21rename5.log

[root@demotest_rename]#foriin$(ls.)

>do

>mv$i$(echo$i|sed's/\.log/\.txt/')

>done

[root@demotest_rename]#ll

总计20

-rw-r--r--1rootroot009-2701:51rename1.txt

-rw-r--r--1rootroot009-2701:21rename2.txt

-rw-r--r--1rootroot009-2701:21rename3.txt

-rw-r--r--1rootroot009-2701:21rename4.txt

-rw-r--r--1rootroot009-2701:21rename5.txt

[root@demotest_rename]#

3.用find和xargs添加后缀名

[root@demotest_rename]#ll

总计20

-rw-r--r--1rootroot009-2702:20rename1

-rw-r--r--1rootroot009-2702:20rename2

-rw-r--r--1rootroot009-2702:20rename3

-rw-r--r--1rootroot009-2702:20rename4

-rw-r--r--1rootroot009-2702:20rename5

[root@demotest_rename]#find.-typef|xargs-imv{}{}.txt

[root@demotest_rename]#ll

总计20

-rw-r--r--1rootroot009-2702:20rename1.txt

-rw-r--r--1rootroot009-2702:20rename2.txt

-rw-r--r--1rootroot009-2702:20rename3.txt

-rw-r--r--1rootroot009-2702:20rename4.txt

-rw-r--r--1rootroot009-2702:20rename5.txt

[root@demotest_rename]#

相关推荐