Chinaunix首页 | 论坛 | 博客
  • 博客访问: 700242
  • 博文数量: 108
  • 博客积分: 10
  • 博客等级: 民兵
  • 技术积分: 1436
  • 用 户 组: 普通用户
  • 注册时间: 2012-10-31 09:49
文章分类
文章存档

2019年(16)

2015年(2)

2014年(20)

2013年(70)

我的朋友

分类: Python/Ruby

2014-07-17 16:10:21

情况,大量修改文本文件或者配置文件。因为技术不够成熟,所以暂时使用小脚本来进行文本的多处替换。
思路一、使用sed命令
举一个例子:
linux-nagios:/opt/scripts # cat test
111111
111
323542341
2342341
1
23424
通过这条命令,将修改好的内容重定向到那个文件中去:/scripts # sed -e 's/1/LP/g' test > test1
之后的结果如下:
linux-nagios:/opt/scripts # cat test1
LPLPLPLPLPLP
LPLPLP
32354234LP
234234LP
LP
23424
2
342LP
23
4
234LPLPLP

情况二、当需要替换特殊字符还有空格回车的时候怎么办呢?
这个时候我选择使用Python的脚本来写这个。
整体的思路如下:
1、打开文件。读出所有行
2、查找到需要修改的地方进行全局的替换
3、将文件保存为新的文件
下面来写一个试试看。这是一种比较笨的方法。
import os                                    #导入os模块
os.chdir('D:/Python33/')                #切换操作目录
if not os.path.exists('test.cfg'):        #查看该文件是否存在
      exit(-1)                                    #不存在就返回错误
infile = open("D:/Python33/test.cfg",'r')        #选择读取的文件
outfile = open("D:/Python33/test1.cfg",'w')    #选择要写入的文件

for s in infile:                                #创建循环,是历遍读取的文本文件的内容出来
      outfile.write(s.replace('}','contact_groups          admins,139duanxin\n      }'))    #写进去每行到写入的文件,并且选择全局替换的内容
                                                                                                                        #循环的就是读取一行,我特么写一行,有替换的我就替换
infile.close()        #关闭文件
outfile.close()        #关闭文件


阅读(2608) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~