假設資料夾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...