[实践Ok]Sed 正则替换代码中的日志开关、错误级别值修改、注释代码备案。

jackxiang 2013-11-7 10:24 | |
背景:多个项目进行代码的日志打印级别统一替换时,如果文件庞大,数目多,一个个去做显然力不从心,得通过脚本,这种替换sed最适合不过了。

paste imgid.txt times.txt |awk -F"." '{print $1}'|awk -F'T' '{print $1"        "$2}'|sed "s/[-:]//g"| paste imgid.txt times.txt |awk -F"." '{print $1}'|awk -F'T' '{print $1"        "$2}'|sed "s/[-]//g;s/://g"

[28-Jan-2019 20:22:33 Asia/Shanghai] PHP Warning:  Redis::connect(): connect() failed: Cannot assign requested address in /root/a.php on line 6
[28-Jan-2019 20:22:33 Asia/Shanghai] PHP Fatal error:  Uncaught RedisException: Redis server went away in /root/a.php:7
Stack trace:
CentOS6和7都要打开,模糊替换:

linux地址重用 net.ipv4.tcp_tw_reuse:
https://blog.csdn.net/pzqingchong/article/details/53580732

sed实现去注释,加中间小横:
#BuildRequires: %{_php_fpm}%{php_version}                                                                                                                    
#Requires: %{_php_fpm}%{php_version}



fpm}%{php  ==替换成=> fpm}-%{php:


如题:
I:
我想把:log_threshold =N;
替换为:log_threshold =1;

我想把:show_debug_errors=AnyWord;
替换为:show_debug_errors=false;

II:
error_reporting(E_ALL ^ E_NOTICE); 变:
//error_reporting(E_ALL ^ E_NOTICE);

I):日志开关,错误级别修改:
一、Sed替换方法如下(该处由scottjiang兄弟提供,后面我发挥了一下下:-)):


二、如果不想备份直接替换:


三、多个项目的index.php都要统一用sed替换:



II):sed实现对PHP代码某特征给注释一行(如:项目上线时不想让其打开错误报告给用户):
如想:
error_reporting(E_ALL ^ E_NOTICE); 变:
//error_reporting(E_ALL ^ E_NOTICE);
sed替换方法:

而:也可结合上面三实现批量替换实现多个文件包含上面串的该行给予注释掉:


四、替换由mysqldump出的自境长字段为0:
情形:Mysqldump出的线下自增长字段,会有默认值,而放到外网则需要从线上开始,此SQL也需要替换的(http://jackxiang.com/post/1188/)
deo` VALUES (1121,NULL,'
用sed替换:
sed -i "s/([0-9]*/(0/g" /tmp/result.sql  
替换后,为0,上线插入时则从线上默认增长,而不是上面的1121:
_video` VALUES (0,NULL,'2'

sed -i 's/([0-9]*,/(0,/g'   //文件名替换(12122, ==>(0,

作者:jackxiang@向东博客 专注WEB应用 构架之美 --- 构架之美,在于尽态极妍 | 应用之美,在于药到病除
地址:https://jackxiang.com/post/6794/
版权所有。转载时必须以链接形式注明作者和原始出处及本声明!


最后编辑: jackxiang 编辑于2019-4-16 17:52
评论列表
发表评论

昵称

网址

电邮

打开HTML 打开UBB 打开表情 隐藏 记住我 [登入] [注册]