[转]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]#