Rename
更改批量文件名?
我有一個關於如何更改該 sac 文件名的順序的問題。我的意思是我有這個訂單,但我需要將其更改為第二個,並且這些 ecommands 應該在腳本上。此外,必須使用列號來完成此更改。
老的
2007.084.00.22.50.8930_2007.084.01.26.10.1430.GE.ISP..BHZ.D.SAC 2007.084.00.22.51.2930_2007.084.01.26.54.8430.GE.ISP..BHN.D.SAC 2007.084.00.25.42.9430_2007.084.01.27.59.2430.GE.ISP..BHE.D.SAC
新的
2007.084.01.26.10.1430_2007.084.00.22.50.8930.GE.ISP..BHZ.D.SAC 2007.084.01.26.54.8430_2007.084.00.22.51.2930.GE.ISP..BHN.D.SAC 2007.084.01.27.59.2430_2007.084.00.25.42.9430.GE.ISP..BHE.D.SAC
讓我編寫我嘗試以這種方式完成的程式碼(如果答案會是這種方式,那對我會更有幫助),我不知道如何繼續完成這個過程。
#!/bin/bash for sacfile in *SAC do echo $sacfile n2=`echo $sacfile | cut -c 24-45` echo $n2 done
假設它們是固定長度的文件名,這應該可以工作。
#!/bin/bash for sacfile in *SAC do new_sacfile=${sacfile:23:22}_${sacfile:0:22}${sacfile:45} echo mv -v ${sacfile} ${new_sacfile} done
我們使用bash 的內置變數操作來分割文件名並根據我們的需要重新排列它。開心的時候可以去掉
mv
語句前面的迴聲