linux下批量重新命名檔案

2021-08-29 02:17:09 字數 654 閱讀 4335

假設資料夾data裡有幾個資料資料夾, 每個資料資料夾內有多個資料檔案,該檔名稱格式為: 2014.143.20.49.21.0000.yn.bas.00.bhe.m.sac

現想要將這些檔名稱改為bas.e.sac, 即取原檔名的幾列重新命名,方法如下:

#!/bin/bash

#將資料檔案.sac名改為'.[n/e/z].sac'

cd ./data

for file in ./*

do cd ./$file

ls ls *.sac | awk -f"." '' | bash

rename "s/bh//" *

cd ..

done

其中ls *.sac | awk -f"." '' | bash

ls 將檔名字尾為.sac的檔案列印出來,再用awk命令.以"."為分隔符, '{}'是操作命令,列印出mv filename_old filename_new,交由bash執行.

例如 mv 2014.143.20.49.21.0000.yn.bas.00.bhe.m.sac bas.bhe.sac

接下來實現刪除每個名稱的''bh"字元;

rename "s/bh//" *

即將''bh"替換為無.

Linux批量重新命名檔案

目的 批量重新命名一些檔案,這些檔案有共同特徵,比如具有相同的字母,或者沒有共同特徵,想統一重新命名,修改它們相同位置上的字元等等。1 我想把它們的名字的第乙個1個字母變為 q 其它的不變 root pps mailqueue for i in ls do mv f i echo i sed s q...

批量重新命名Linux檔案

把當前目錄下的所有檔案重新命名為a 例如 a.jpg 則執行後變成a a.jpg for var in do mv var a var done 1 刪除所有的 bak 字尾 rename s bak bak 2.加.zip字尾 rename s zip 3 把 jpe 檔案字尾修改為 jpg 4 ...

Linux批量重新命名檔案

1 bin bash 為檔名新增前導0,以保證檔名前的數字位數相同 3個 for file in ls doif echo file grep 1 9 0 9 dev null then newfile echo file sed s 1 9 0 9 00 elif echo file grep s...