Python 2.7子流程:tail -f | grep
问题描述:
如何在Python 2.7中运行这个linux命令?Python 2.7子流程:tail -f | grep
tail -f *file.log | grep 10.10.10.100
下面似乎没有观察到grep。我看到以前的帖子,但没有看到任何人试图拖尾文件,然后管道grep。
subprocess.call(["tail", "-f", "*files.log", "|", "grep", "10.10.10.100"])
答
当你这样做你是执行错误的命令是:
subprocess.call(["tail", "-f", "*files.log", "|", "grep", "10.10.10.100"])
您需要使用shell的功能,比如管道(|
)时通过该选项shell=True
:
subprocess.call("tail -f *files.log | grep 10.10.10.100", shell=True)
答
或者你可以使用这个命令,
import os
os.system('tail -f *file.log | grep 10.10.10.100')
[在Python中调用外部命令]可能的重复(https://*.com/questions/89228/calling-an-external-command-in-python) – pvg
@pvg - 我检查了该线程,它没有'回答我的问题......我知道如何在这种情况下打电话。 –
@ user1670178请再次查看。它涵盖了shell解析,这是你所缺少的,有多种方式。这是一个确切的愚蠢,还有其他类似的。 – pvg