使用shell脚本替换后缀名
思路:
1、取得原始文件的长度${#FILENAME}
2、取得临时文件的长度${#FILENAME%OLDSUFF}
3、如果原始文件的长度大于临时文件的长度则可以更改后缀名。
4、从文件中取得后缀名
${LINE%:*} #取得前面的后缀名
${LINE#*:}#取得后面的后缀名
5、将前面的后缀名改为后面的后缀名
mv $FILENAME ${FILENAME%OLDSUFF}${NEWSUFF}
shell 代码:
1 #!/bin/bash
2 DIR=/tmp
3 for FILENAME in $DIR/*.*
4 do
5 for LINE in $(cat /etc/a.conf)
6 do
7 OLDSUFF=${LINE%:*}
8 NEWSUFF=${LINE#*:}
9 ORG_FILENAME_LEN=${#FILENAME}
10 TMP_FILENAME=${FILENAME%$OLDSUFF}
11 TMP_FILENAME_LEN=${#TMP_FILENAME}
12 if [ $ORG_FILENAME_LEN -gt $TMP_FILENAME_LEN ];then
13 mv $FILENAME ${TMP_FILENAME}$NEWSUFF
14 else
15 echo "$FILENAME do not match ....."
16 fi
17 done
18 done
转载于:https://blog.51cto.com/escaping/1277248