shell小技巧(6)修改一批文件后綴


當前目錄下后綴為sh的文件,改為后綴shell。

這里列出兩種方法,先看第一種。
方法1:
#!/bin/bash

str=`find ./ -name \*.sh`  # 會產生一個列表

file=" $str "   # 需要在列表前后加空格,在shell中,列表或數組的括號前后必須是空格

for i in $file

do

mv $i ${i%sh}shell

done
思路很簡單,用find找到符合的文件,存如數組。然后使用mv修改文件名。

其中${i%sh}shell是修改后綴后的文件名。%是將字符串變量i中sh以及sh右側的字符全部刪除。

也可以這樣寫,${i%.*}.shell,刪除最后一個“.”以及右側的所有字符。

還有一種直接替換,${i/.sh/.shell/},不過如果文件名中如果還含有“.sh”會出問題,因為他只替換第一個找到的字串,所以不精確。

因為此題后綴替換前后有特殊性,還可以這樣寫:${i}ell。

方法2:

#!/bin/bash

str=`find ./ -name "*.sh"` # 會產生一個列表

str=`find ./ -name \*.sh`  # 會產生一個列表

file=" $str "   # 需要在列表前后加空格,在shell中,列表或數組的括號前后必須是空格

for i in $file

do

mv $i $( echo $i | sed 's#.sh$#.shell#g' ) 

done

此方法主要是用了sed命令,原理跟${i/sh/shell/}類似,只不過它指明了替換結尾的字串,能精確匹配要求。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM