當前目錄下后綴為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/}類似,只不過它指明了替換結尾的字串,能精確匹配要求。
