python sed不能正常工作

问题描述:

为什么在Python中使用sed类似的操作很困难?python sed不能正常工作

cat temp$$ | sed '/ENTRY/d' | sed '/VERSION/d' > temp$$1 

下尝试根本不起作用(而不是写入文件,我打印到屏幕):

70 for line in open("temp5027", 'r'): 
71  
72  if re.search("ENTRY|VERSION", line) != None: 
73   pass 
74  else: 
75   print line 

沮丧的第一次蟒蛇用户。

注意:我使用python 2.4,所以没有“with”支持。

+2

这是什么意思“不起作用”? – Vyktor

+0

是否打算再次打印那些不匹配的行(re.search返回“无”)? – halex

+0

是的。这是故意的。我使用正则表达式作为过滤器。 – Figo

写入与Python 2.4

import re 

i = open("in.txt") 
o = open("out.txt", "w") 

for line in i: 
    if re.search("ENTRY|VERSION", line): 
     o.write(line) 

o.close() 
i.close() 

写文件与现代的Python

import re 

with open("in.txt") as i, open("out.txt", "w") as o: 
    for line in i: 
     if re.search("ENTRY|VERSION", line): 
      o.write(line) 

奖金提交

提高你的sed使用。

$ sed -e '/ENTRY/d' -e '/VERSION/d' <in.txt> out.txt 
+0

哎呀忘了提及我在服务器上使用的2.4版本..“与” – Figo

+0

感谢您的评论奖金虽然! – Figo

+1

把'open'与''打在一起''在这里会有意义... –