Допустим, у меня есть что-то вроде этого (это только пример, фактический запрос будет другим: я загрузил StackOverflow с включенным 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
... файл Filter.txt был создан, но он полностью пуст.
Кто-нибудь пробовал это на ПОЛНЫХ заголовках, которые я вставил в pastebin? Это сработало?
Полные заголовки