我正在尝试使用 python 执行以下系统命令:
cat txt_file | egrep "keyword1|keyword2|keyword3"
使用下面的python代码:
p1 = subprocess.Popen (['cat', txt_file], stdout=subprocess.PIPE)
p2 = subprocess.Popen (['egrep', "\"" + keyword_list + "\""], stdin=p1.stdout, stdout=subprocess.PIPE)
#where keyword_list is : "keyword1|keyword2|keyword3"
p1.stdout.close() #for p2 to exit if SIGPIPE from p1
out = p2.communicate()[0]
egrep 输出有多行,但是使用上面的脚本,我只能得到与变量中的中间关键字 2 匹配的行out
。
这里可能是什么问题?
更新:平台:windows txt_file 相当大~8 MB