shell批量替换⽂件内容的四种⽅法
shell脚本替换⽂件内容常⽤的⽅法有四种,会⽤到sed,find ,grep,awk等命令。
⽅法⼀:find -name '要查的⽂件名' | xargs perl -pi -e 's|被替换的字符串|替换后的字符串|g'
代码⽰例:
⽅法⼆:sed -i "s/原字符串/新字符串/g" `grep 原字符串 -rl 所在⽬录`
代码⽰例:
sed -i "s#10.220.96.205:8022#11.1.14.145#g" 'grep mahuinan -rl ./'
shell创建文件并写入内容注:命令中的#可以替换成/或者|,以便于和字符串区分。
⽅法三:grep "原字符串" * -R | awk -F: '{print $1}' | sort | uniq | xargs sed -i 's/原字符串/新字符串/g'
代码⽰例:
grep "master" * -R | awk -F: '{print $1}' | sort | uniq | xargs sed -i 's/master/release/g'
批量替换配置⽂件中的IP:
grep "[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}" * -R | awk -F: '{print $1}' | sort | uniq | xargs sed -i 's/[0-9]\{1,3\}\.[0-9]\ {1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}/172\.0\.0\.1/g'
所在⽬录 -type f -path "⽂件名称"|xargs sed -i 's:
原字符串 ::
-type f -path "⽂件名称"|xargs sed -i 's: 原字符串
⽅法四:
⽅法四: find
find 所在⽬录
:g'
新字符串 :g'
新字符串
代码⽰例:
find ./ -name "*"|xargs grep "/data/" #查询匹配结果
find ./ -type f -path "*.sh"|xargs sed -i 's:/data/:/databak/:g' #查并替换
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论