正则表达式使用笔记——用perl和sed批量修改配置信息
2012-07-03 10:26
295 查看
测试程序时,遇到一个配置文件需要修改,该配置文件中包含信息200多条,手动修改不知道要改到何年何月,所以自然而然地想到写个脚本来处理这些事情。
关于sed可参考:http://www.tsnc.edu.cn/default/tsnc_wgrj/doc/sed.htm。或者直接问man也行。
1、将所有-w:*** -h:***改成-w:0 -h:0(其中***全部是数字)
本来想用perl写脚本,突然想到sed 一条命令即可解决,如下:
很简单的正则表达式,无需多解释了。
2、去掉中间路径,如类似/mydir/xxx/xxxx/file.txt,去掉所有的xxx
模式匹配串:
output.*\\\(.*\.txt\),前两个\\代表一个'\'字符,第三个\和(一起组成一个'(',第四个\是'.'的控制字符,第五个是)的控制字符;
也就是说,系统看到的实际上是:output.*\(.*.txt)。
前面两个'.'匹配空格外所有字符,最后一个就纯粹是文件名扩展名前的点了。
目标串:
前两个\\代表一个'\'字符,第三个与1组成一个'\1',用来捕获模式串中()中的内容
这样即只保留最后一个'\'和'.txt'之间的内容,即文件名,而把中间的路径全部去掉了。
3、从完整目录名中提取文件名
这个是用perl实现的,如下:
正则表达式中的[^\\]+表示包含1个或多个不为‘\’的字符,$&表示匹配串。
关于sed可参考:http://www.tsnc.edu.cn/default/tsnc_wgrj/doc/sed.htm。或者直接问man也行。
1、将所有-w:*** -h:***改成-w:0 -h:0(其中***全部是数字)
本来想用perl写脚本,突然想到sed 一条命令即可解决,如下:
sed -i 's/-w:[0-9]* -h:[0-9]*/-w:0 -h:0/g' file1.cfg
很简单的正则表达式,无需多解释了。
2、去掉中间路径,如类似/mydir/xxx/xxxx/file.txt,去掉所有的xxx
sed -i 's/output.*\\\(.*\.txt\)/output\\\1/g' file1.cfg
模式匹配串:
output.*\\\(.*\.txt\),前两个\\代表一个'\'字符,第三个\和(一起组成一个'(',第四个\是'.'的控制字符,第五个是)的控制字符;
也就是说,系统看到的实际上是:output.*\(.*.txt)。
前面两个'.'匹配空格外所有字符,最后一个就纯粹是文件名扩展名前的点了。
目标串:
前两个\\代表一个'\'字符,第三个与1组成一个'\1',用来捕获模式串中()中的内容
这样即只保留最后一个'\'和'.txt'之间的内容,即文件名,而把中间的路径全部去掉了。
3、从完整目录名中提取文件名
这个是用perl实现的,如下:
if (/\\[^\\]+\.txt/) { $temp = $&; }
正则表达式中的[^\\]+表示包含1个或多个不为‘\’的字符,$&表示匹配串。
相关文章推荐
- 【Linux】使用sed、awk来完成批量修改配置文件的shell设计
- 使用perl的expect在禁止root登陆的情况下批量修改root密码
- sharepoint 2007 使用open with windows explorer的方式打开sharepoint 目录,然后批量复制文件,会导致被复制的文件信息被修改成当前用户和当前时间
- 【视频】配置信息管理 的 使用方法(三):查看和修改元数据、查看数据库的表视图存储过程等信息
- 大数据学习笔记:编写脚本分发配置,数据分布,以及使用代码打印调试信息
- 使用sed修改配置文件中配置项的值
- 使用jQuery的getJSON方法实现配置信息的状态的异步修改
- 【视频】配置信息管理 的 使用方法(六):实现添加、修改、查询
- 【视频】配置信息管理 的 使用方法(六):实现添加、修改、查询
- iOS 9以后使用http请求 所需修改的配置信息
- 【视频】配置信息管理 的 使用方法(六):实现添加、修改、查询
- Linux中使用sed命令或awk命令修改常规配置文件
- 使用C#批量修改域帐户信息
- 使用C#批量修改域帐户信息全部代码
- 使用 sed 修改配置文件
- 【札记】spring+mybatiss+c3p0整合访问MySQL的URL配置(有批量修改信息时)
- WPF学习笔记--使用配置文件修改控件、面板颜色
- 使用C#批量修改域帐户信息全部代码
- 【视频】配置信息管理 的 使用方法(三):查看和修改元数据、查看数据库的表视图存储过程等信息
- 【视频】配置信息管理 的 使用方法(三):查看和修改元数据、查看数据库的表视图存储过程等信息