2024-04-27 03:36:09 发布
网友
我有一个grep查询:
grep "8=ABC\.4\.[24].*\|10=[0-9]+" output.txt |grep "35=8"| cut -d "|" -f 12 >redirect.txt
如何在python脚本中执行相同的操作?我知道对于一个简单的grep,它的工作原理如下:
我很困惑如何组合两个grep命令和一个cut命令并将其重定向到输出文件?在
cut
对于cut,它与grep完全相同。要在结尾重定向到一个文件,只需open()一个文件,并在运行cut命令时将其作为stdout传递。在
grep
open()
stdout
正如注释中所述,这些都可以在python中实现,而不需要调用任何东西。但是,如果你想打外部电话,只要像你在例子中那样保持链接。最后一个stdout是一个打开的文件,以完成重定向。请注意,我还关闭了parent side stdout,这样它就不会保留到管道的额外入口点。在
import subprocess as subp p1 = subp.Popen(["grep", "8=ABC\.4\.[24].*\|10=[0-9]+", "output.txt"], stdout=subp.PIPE) p1.stdout.close() p2 = subp.Popen(["grep", "35=8"], stdin=p1.stdout, stdout=subp.PIPE) p2.stdout.close() p3 = subp.Popen(["cut", "-d", "|", "-f", "12"], stdin=p2.stdout, stdout=open('redirect.txt', 'wb')) p3.wait() p2.wait() p1.wait()
对于
cut
,它与grep
完全相同。要在结尾重定向到一个文件,只需open()
一个文件,并在运行cut
命令时将其作为stdout
传递。在正如注释中所述,这些都可以在python中实现,而不需要调用任何东西。但是,如果你想打外部电话,只要像你在例子中那样保持链接。最后一个stdout是一个打开的文件,以完成重定向。请注意,我还关闭了parent side stdout,这样它就不会保留到管道的额外入口点。在
相关问题 更多 >
编程相关推荐