将命令输出解析为变量实时(网络流量监控)

时间:2015-08-24 05:20:30

标签: macos bash perl sed grep

我正在用bash编写网络监控脚本。我使用的基本命令是ettercap -T -M ARP -i en1 // //。然后我将egrep --color 'Host:|GET'输入其中。

我得到的示例输出如下:

GET /images/srpr/logo11w.png HTTP/1.1.
Host: www.google.com.
GET /en-us/us/products HTTP/1.1.
Host: www.caselogic.com.

我想要的输出是:

Title: logo11w.png
URL: www.google.com/images/srpr/logo11w.png HTTP/1.1.

Title: Products - Case Logic
URL: www.caselogic.com/en-us/us/products

要注意的事项:HTTP/1.1.和主机末尾的.消失了。它们也会形成一个URL,每个Title / URL列表后面会有一个空行。我尝试通过使用

解析输出到变量的命令将它们组成一个URL
var=`sudo ettercap -T -M ARP -i en1 // // | egrep --color 'Host:|GET'` | echo $var

但显然这不起作用,因为变量的输入是一个命令,直到用户请求停止(CTRL + C)。

要获取HTML页面的标题,我使用命令wget -qO- 'https://url.goes/here' | perl -l -0777 -ne 'print $1 if /<title.*?>\s*(.*?)\s*<\/title/si'。如果它没有标题,例如图像,则没有标题可以。

非常感谢任何帮助,如果我写的内容难以阅读,请随时提出问题。

0 个答案:

没有答案