大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。
Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺
今天测试人员一不小心把导航的地址改错了,大约6000多个导航文件,要通过后台配置的话也很麻烦,可以通过linux命令实现对批量文件进行内容替换,但是技术经理不在,我对linux命令不熟,没办法只好硬着头皮来。经在网上一番辛苦搜索,找到以下几个命令,并尝试执行……最终终于实现效果,哎,“书到用时方恨少”,特此针对今天的情况总结了一下Linux批量替换文件内容的命令,
第一种:
格式:sed -i “s/oldstr/newstr/g” filesname
说明:oldstr 需要替换的旧字符串
newstr 替换后的新字符串
filesname 批量文件名称,支持正则,如:ST_*.json
案例:
如果我想把ST_*.json下面的文件里的“today” 替换为“tomorrow”,那就是:
sed -i “s/today/tomorrow/g” ST_*.json
但是这种命令有一个缺陷,就是替换的文件数量有限制,不过可以针对文件名称规则再细分几种类型,分几次执行就可以了。于是另寻出路,找到了下面一种:
第二种:
格式:sed -i “s/oldstr/newstr/g” `grep oldstr -rl yourdir`
说明:oldstr 需要替换的旧字符串
newstr 替换后的新字符串
yourdir 文件路径名称
注意:在 `grep oldstr -rl /path`中 ` 为1前边的翻引号`,而不是enter 前的 ‘
但是执行出错,说是找不到路径,但是路径也正确,不明所以,还请大牛指教。然后我看到了一段说明说这种做法”对多个文件的处理可能不支持,需要用 xargs, 搞定。“也就是下面的方法
第三种:
格式:grepoldstr -rl /path | xargssed -i “s/oldstr/newstr/g” 说明:oldstr 需要替换的旧字符串
newstr 替换后的新字符串
path 文件路径名称
案例:
如果我想把/app/web/sitemap下面的文件里的“today” 替换为“tommorow”,那就是:
grep today -rl /app/web/sitemap grep |xargs sed -i “s/today/tommorow/g”
执行完毕,效果就出来了!这个太好用了。
我总结的可能不全,但是这两个用起来很顺手,如有其它顺手的命令,还请大家补充!
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/164473.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...