天天看点

shell替换程序里的代码

需求:

扩展名类型: .php .html .shtml .inc

<a href="http://market.pk.com/files/union/ad_union_(*).js">http://market.pk.com/files/union/ad_union_(*).js</a>

<a href="http://market.pk.com/files/advertisement/(*)/ad_(*).js">http://market.pk.com/files/advertisement/(*)/ad_(*).js</a>

脚本1:

#!/bin/bash

ROOT_DIR='/root/temp/wow'

KEYWORD='ad_union'

KEYWORD2='advertisement'

#for i in $(find $ROOT_DIR -name "*.*" -exec grep "$KEYWORD" {} \;)

for i in $(find $ROOT_DIR -name "*.*")

do

ifile=$(grep "$KEYWORD" $i)

if [ "$?" -eq "0" ]

then

FILE_NUMBER=$(echo $ifile | awk -F"\"" '{print $2}' | awk -F"/" '{print $NF}' | awk -F"." '{print $1}' | awk -F"_" '{print $NF}')

#sed -i "s#ad\_union\_[0-9][0-9]#union\_$FILE_NUMBER#g" $i

sed -i "s#ad\_union\_$FILE_NUMBER#union\_$FILE_NUMBER#g" $i

fi

ifile=$(grep "$KEYWORD2" $i)

FILE_NUMBER2=$(echo $ifile | awk -F"\"" '{print $2}' | awk -F"/" '{print $NF}' | awk -F"." '{print $1}' | awk -F"_" '{print $NF}')

sed -i "s#advertisement\/$FILE_NUMBER2\/ad\_$FILE_NUMBER2#upload\/$FILE_NUMBER2\/$FILE_NUMBER2#g" $i

done

脚本2:

EXT_ARRAY=("*.php" "*.inc" "*.html" "*.shtml")

EXT_ARRAY_LEN=${#EXT_ARRAY[@]}

#i=0

#while [ $i -lt $EXT_ARRAY_LEN ]

#do

# find $ROOT_DIR -name "${EXT_ARRAY[$i]}" | while read f

# do

# sed -i 's#union\/ad_union_5\.js#union\/union_5\.js#g' $f

# sed -i 's#advertisement\/27\/ad_27\.js#upload\/27\/27\.js#g' $f

# done

# let i++

#done

FILE_NUMBER=$(echo $ifile | awk -F"/" '{print $NF}' | awk -F"." '{print $1}' | awk -F"_" '{print $NF}')

FILE_NUMBER2=$(echo $ifile | awk -F"/" '{print $NF}' | awk -F"." '{print $1}' | awk -F"_" '{print $NF}')

这两个脚本分别执行替换程序里的代码内容。

本文转自 liang3391 51CTO博客,原文链接:http://blog.51cto.com/liang3391/456622