如何获取grep命令的输出(Python)

Sie*_*ruc 4 python grep subprocess

我有一个输入文件test.txt as:host:dc2000 host:192.168.178.2

我希望通过以下方式获取这些机器的所有地址:

host:dc2000
host:192.168.178.2
Run Code Online (Sandbox Code Playgroud)

依此类推,我通过python获得命令输出:

grep "host:" /root/test.txt 
Run Code Online (Sandbox Code Playgroud)

但结果是空字符串.

我不知道我遇到了什么问题.你能建议我怎么解决?

Gil*_*not 5

试试看:

import subprocess
hosts = subprocess.check_output("grep 'host:' /root/test.txt", shell=True)
print hosts
Run Code Online (Sandbox Code Playgroud)


Wol*_*lph 3

您的代码应该可以工作,您确定用户具有读取该文件的访问权限吗?

"host:"另外,你确定文件中有a吗?你的意思可能是这样的:

hosts_process = subprocess.Popen(['grep','host:',file_input], stdout= subprocess.PIPE)
hosts_out, hosts_err = hosts_process.communicate()
Run Code Online (Sandbox Code Playgroud)