涉及shell语法总结:
- if-then-else-fi条件判断
- for in do done循环
- shell中双引号可以直接引用变量,单引号则需要转义
- awk -F 等价于awk FS
replace.sh文件内容:
#!/bin/bash
# awk命令参考:http://t.csdn.cn/EPf3J
before=$1
after=$2
if [ ! ${after} ] ; then
echo "error!!!"
echo "please input params,for example : sh replace.sh xxx yyy"
exit
else
echo "===== before:${before} after:${after}"
fi
for var in `find . -type f -name 'pom.xml' | xargs grep "${before}" -Hnr | awk -F ":" '{print $1}'`;
do
echo "${var}"
sed -i "s/${before}/${after}/g" ${var}
done
echo "===== replace success!!! "
不过弄了半天,实际可以用一条命令处理,还要什么脚本文件?
find . -type f -name 'pom.xml' | xargs sed -i "s/6.2.18/6.2.21/g"
这篇文章介绍了如何使用Shell脚本来实现条件判断和循环操作。它提供了一个名为replace.sh的脚本示例,该脚本接收两个参数,在所有名为pom.xml的文件中查找并替换指定文本。如果未提供参数,脚本会报错并退出。通过find和xargs命令结合sed进行文本替换,可以简化为一条命令执行相同的功能。
1万+

被折叠的 条评论
为什么被折叠?



