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”支持。
答
写入与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
这是什么意思“不起作用”? – Vyktor
是否打算再次打印那些不匹配的行(re.search返回“无”)? – halex
是的。这是故意的。我使用正则表达式作为过滤器。 – Figo