linux中Sed 正则替换代码中的日志开关、错误级别值修改、注释代码

背景:多个项目进行代码的日志打印级别统一替换时,如果文件庞大,数目多,一个个去做显然力不从心,得通过脚本,这种替换sed最适合不过了。
如题:
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兄弟提供,后面我发挥了一下下:-)):

 sed "s/log_threshold = .*;$/log_threshold = 1;/g;s/show_debug_errors = .*;$/show_debug_errors = false;/g" index.php > index.php.new
mv  index.php.new index.php

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

 
sed -i  "s/log_threshold = .*;$/log_threshold = 1;/g;s/show_debug_errors = .*;$/show_debug_errors = false;/g" index.php

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

 
 grep -rl "log_threshold =" ./|grep index.php|xargs sed -i  "s/log_threshold = .*;$/log_threshold = 1;/g;s/show_debug_errors = .*;$/show_debug_errors = false;/g"

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

 
sed 's/error_reporting///error_reporting/g'  ./index.php

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

  
grep -rl "error_reporting(E_ALL ^ E_NOTICE);" ./|grep index.php|xargs sed -i 's/error_reporting///error_reporting/g'

四、替换由mysqldump出的自境长字段为0:

情形:Mysqldump出的线下自增长字段,会有默认值,而放到外网则需要从线上开始,此SQL也需要替换的(http://www.111cn.net/)
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,

时间: 2024-09-26 09:18:54

linux中Sed 正则替换代码中的日志开关、错误级别值修改、注释代码的相关文章

Dreamweaver中使用正则表达式替换href中的内容

 可能在dw中使用正则表达式替换字符串的朋友很少,下面我来给大家介绍Dreamweaver中使用正则表达式替换href中的内容吧.    在Dreamweaver中使用正则表达式替换href中的内容,就像下面这些href中的内容复杂多样的情况下,href="/html/u.html",href="/tuho/huko.html",想将它们全部替换成href="#" ,具体做法如下: 查找: href="[^"]*"

PHP中使用递归替换数组中的内容

PHP开发小技巧实例程序,使用递归替换数组中的内容. <?php $arr = array("<小刚>","<小晓>","<小飞>","<小李>","<小红>"); function arrContentReplact($array) { if(is_array($array)) { foreach($array as $k => $v

SQL Server中利用正则表达式替换字符串的方法

建立正则替换函数,利用了OLE对象,以下是函数代码: --如果存在则删除原有函数 IF OBJECT_ID(N'dbo.RegexReplace') IS NOT NULL DROP FUNCTION dbo.RegexReplace GO --开始创建正则替换函数 CREATE FUNCTION dbo.RegexReplace ( @string VARCHAR(MAX), --被替换的字符串 @pattern VARCHAR(255), --替换模板 @replacestr VARCHAR

PHP正则替换函数preg_replace和preg_replace_callback使用总结_php技巧

在编写PHP模板引擎工具类时,以前常用的一个正则替换函数为 preg_replace(),加上正则修饰符 /e,就能够执行强大的回调函数,实现模板引擎编译(其实就是字符串替换). 详情介绍参考博文:PHP函数preg_replace() 正则替换所有符合条件的字符串 应用举例如下: 复制代码 代码如下: <?php /**  * 模板解析类  */ class Template {  public function compile($template) {   // if逻辑   $templa

用ildasm/ilasm修改IL代码(操作步骤)

在开发中遇到这样一个场景,需要修改一个dll文件(.NET程序集)中某些地方的类型名称,但没有源代码,只能修改IL代码. 操作步骤如下: 1. 运行ildasm ildasm是由微软提供的.NET程序反编译工具,位于"C:\Program Files\Microsoft SDKs\Windows\v7.0A\bin\". 2. 用ildasm打开要修改的程序集,如下图: 3. 通过ildasm保存为IL文件 选择菜单File>Dump,选择UTF-8编码,如下图: 4. 用文本编

linux下批量替换文件中的内容

  grep命令可以查找单个文件或文件夹下文件中的内容,使用参数"r"或"-R"可以递归查找指定文件夹下的所有文件;参数"l"可以让grep输出包含指定字符串的文件名,首次匹配成功后立刻停止对同文件的查询.如果不使用"l",grep查询单个文件时输出文件中所有包含指定字符串的行,对文件夹查询时则按照"文件名:包含字符串行"的方式输出. 有了上面提到的知识,执行批量替换的命令可以写为: grep "

php中正则替换函数ereg_replace用法实例

本文实例讲述了php中正则替换函数ereg_replace用法.分享给大家供大家参考.具体如下: 下面的实例是利用php 正则替换函数 ereg_replace来把指定的字符替换成我想需要的字符实例,代码如下: 复制代码 代码如下:$num = 'www.jb51.net'; $string = "this string has four words. <br>"; $string = ereg_replace ('four', $num, $string); echo $

wordpress中preg_match正则提取和替换字符串

把以下代码:  代码如下 复制代码 <img src="/wp-content/uploads/2014/02/hbzy1.gif" alt="hbzy"  width="60" height="60" class="alignnone size-full wp-image-2100" /> 输出显示的时候替换成:  代码如下 复制代码 <div class="gif-box&q

php正则取img标记中任意属性(正则替换去掉或改变图片img标记中的任意属性)_php技巧

因有一项目新闻发布系统,数据库内容字段中存储的是原图的路径(当然还有其他文字内容啦,内容里插图时,存的是图片路径),但前台想使用缩略图,琢磨1小时余,得到以下结果,可解决问题(取img标签会了,取别的标签任意属性自然也会了): 复制代码 代码如下: <?php /*正则取图片img标记中的任意属性*/ $word = '<p height="22" align="cenetr">111 22</p> <img src="