shell指令碼 批量修改檔名 刪除檔名中字元

2021-09-21 09:27:29 字數 1460 閱讀 7165

舉例如下:批量改名,刪除檔名中多餘字元

目錄下檔名為如下,要求去掉_finished。

可以實現的方法有很多種:

方法一:for迴圈結合sed替換

[baby@localhost ~]$ for file in `ls *.jpg`;do mv $file `echo $file|sed 's/_finished//g'`;done;
方法二:ls結合awk,輸出交給bash執行

[baby@localhost ~]$ ls *.jpg |awk -f "_finished" ''|bash
實際執行的命令如下,以_finished作為分隔符,mv及變數 需要加雙引號

方法三:rename改名

[baby@localhost ~]$ rename "_finished" "" *.jpg
方法四:for迴圈加變數部分擷取

[baby@localhost ~]$ for file in `ls *.jpg`;do mv $file `echo $.jpg`;done;
不使用echo也可以實現

[baby@localhost ~]$ for file in `ls *.jpg`;do mv $file $.jpg;done;
更改後結果如下:stu_102999_1.jpg

shell指令碼 批量修改檔名

參考鏈結1 shell指令碼 批量修改檔名 刪除檔名中字元 參考鏈結2 linux shell 字串操作詳解 長度,讀取,替換,擷取,連線,對比,刪除,位置 參考鏈結3 每天乙個linux命令 21 find命令之xargs 參考鏈結5 shell 學習第十天 sed 查詢與替換 批量改名,增加字元...

shell指令碼 批量修改檔名 檔名中新增字元

舉例如下 批量建立10個隨機字串的檔案,要求每個檔名後面新增 aaa,字尾名不變 root localhost goodboy ls adddbbdedf.html baacjaiija.html bhcfaabcfh.html dgjdcdfbca.html efejadfdji.html agd...

shell 批量修改檔名

當前目錄有n多個 檔案,需要按從小到大排序,然後改名成 1.n.解法如下 整理來自於論壇 方法一 root squid mkdir ls lrs total 24 rw r r 1 root root 7 jun 1 01 19 test1.txt rw r r 1 root root 8 jun ...