比方说,我有这样的事情(这只是一个例子,实际要求会有所不同:我装StackOverflow上启用有一些样品的LiveHTTPHeaders对工作):如何使用awk,perl或sed从LiveHTTPHeaders输出中删除响应?
http://stackoverflow.com/ GET/HTTP/1.1 Host: stackoverflow.com User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1.2) Gecko/20070220 Firefox/2.0.0.2 Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5 Accept-Language: en-us,en;q=0.5 Accept-Encoding: gzip,deflate Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7 Keep-Alive: 300 Connection: keep-alive HTTP/1.x 200 OK Cache-Control: private Content-Type: text/html; charset=utf-8 Content-Encoding: gzip Expires: Sat, 28 Nov 2009 16:04:24 GMT Vary: Accept-Encoding Server: Microsoft-IIS/7.0 Date: Sat, 28 Nov 2009 16:04:23 GMT Content-Length: 19015 ---------------------------------------------------------- ...
请求和响应的完整日志是可用的pastebin
而且我想要删除所有的响应(例如HTTP/1.x 200 OK和所有的响应,例如)和所有显示页面地址的衬里。我只想将所有请求保留在带有保存的LiveHTTPHeaders输出的文本文件中。
因此,输出将是:
GET/HTTP/1.1 Host: stackoverflow.com User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1.2) Gecko/20070220 Firefox/2.0.0.2 Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5 Accept-Language: en-us,en;q=0.5 Accept-Encoding: gzip,deflate Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7 Keep-Alive: 300 Connection: keep-alive GET /so/all.css?v=5290 HTTP/1.1 Host: sstatic.net User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1.2) Gecko/20070220 Firefox/2.0.0.2 Accept: text/css,*/*;q=0.1 Accept-Language: en-us,en;q=0.5 Accept-Encoding: gzip,deflate Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7 Keep-Alive: 300 Connection: keep-alive Referer: http://stackoverflow.com/ ...
再次,我想保持全文可在pastebin。
如果我将LiveHTTPHeaders捕获的会话保存到文本文件中,并且希望从此问题的第二个“代码”中获得结果,那么我该如何执行此操作?也许与awk
,sed
或perl
?或者是其他东西?我在Linux上。
编辑: 我试图运行思南的脚本。脚本是这样的:
#!/usr/bin/perl
local $/ = "\n\n";
while (<>) {
print if /^GET|POST/; # Add more request types as needed
}
我试图运行这样说:
./cleanup-headers.pl livehttp.txt > filtered.txt
而且这样:
perl cleanup-headers.pl <livehttp.txt> filtered.txt
...文件filtered.txt被创建,但它是完全空的。
任何人都试过它在我粘贴到pastebin的全部标题?它有效吗?
请在后相关文本重新提交,以及 - 格式化。另外,你的问题很难理解。你的编程问题是什么? – 2009-11-28 16:29:58
我无法在帖子中提交代码,因为stackoverflow认为我想发布垃圾邮件链接;)。我试图将我在pastebin1中的输出转换为我在pastebin2中的输出 - 这种方式更容易理解,还是我应该解释更多? – Tim 2009-11-28 16:34:26
...我想删除部分pastebin1以获取pastebin2中的内容。我想删除无用的(用于我的任务)该工具(livehttpheaders)正在生成的信息。您可以比较pastebin链接中的标题以查看差异。 – Tim 2009-11-28 16:38:01