6 Star 7 Fork 4

calvinwilliams/exsh

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
bstr 1023 Bytes
一键复制 编辑 原始数据 按行查看 历史
czr 提交于 2019-03-25 13:56 . init
#!/bin/bash
# batch replace string in files
# copyright by calvin in 2013
if [ $# -ne 3 ] ; then
echo "USAGE : bstr \"FILES\" SRCSTR DSTSTR"
exit 9
fi
FILES=$1
SRCSTR=$2
DSTSTR=$3
OLDIFS=$IFS
IFS=$'\n'
CNT=0
for FILENAME in `ls -d $FILES` ; do
FLG=0
while read LINE ; do
echo "$LINE" | grep "\/\*" > /dev/null
if [ $? -eq 0 ] ; then
continue
fi
NEWLINE=`echo $LINE | sed "s/$SRCSTR/$DSTSTR/g"`
if [ x"$NEWLINE" = x"$LINE" ] ; then
continue
fi
echo "$FILENAME : [$LINE] -> [$NEWLINE]"
FLG=1
done < $FILENAME
if [ $FLG -eq 1 ] ; then
CNT=`expr $CNT + 1`
fi
done
if [ $CNT -eq 0 ] ; then
echo "无匹配文件"
exit 0
fi
printf "涉及文件数量%d个,确认替换文件内容? " $CNT
read YN
if [ x"$YN" != x"y" ] ; then
exit 0
fi
CNT=0
for FILENAME in `ls -d $FILES` ; do
grep "$SRCSTR" $FILENAME > /dev/null
if [ $? -eq 0 ] ; then
cat $FILENAME | sed "s/$SRCSTR/$DSTSTR/g" > /tmp/bstr.$$
mv /tmp/bstr.$$ $FILENAME
CNT=`expr $CNT + 1`
fi
done
printf "完成,共处理了%d个文件\n" $CNT
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Shell
1
https://gitee.com/calvinwilliams/exsh.git
git@gitee.com:calvinwilliams/exsh.git
calvinwilliams
exsh
exsh
release

搜索帮助

D67c1975 1850385 1daf7b77 1850385