任何人都可以帮我弄清楚如何使用bash脚本从以下响应中的headers部分中提取body。
我尝试过awk,sed,grep ......在SO上查看一些现有的解决方案,但收效甚微。 如果我需要提供任何其他信息,请告诉我。
HTTP/1.1 200 OK
Cache-Control: max-age=604800
Content-Type: text/html
Date: Mon, 24 Jul 2017 10:16:19 GMT
Etag: "359670651+gzip+ident"
Expires: Mon, 31 Jul 2017 10:16:19 GMT
Last-Modified: Fri, 09 Aug 2013 23:54:35 GMT
Server: ECS (iad/182A)
Vary: Accept-Encoding
X-Cache: HIT
Content-Length: 1270
<!doctype html>
<html>
<head>
<title>Example Domain</title>
<meta charset="utf-8" />
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<style type="text/css">
body {
background-color: #f0f0f2;
margin: 0;
padding: 0;
font-family: "Open Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;
}
div {
width: 600px;
margin: 5em auto;
padding: 50px;
background-color: #fff;
border-radius: 1em;
}
a:link, a:visited {
color: #38488f;
text-decoration: none;
}
@media (max-width: 700px) {
body {
background-color: #fff;
}
div {
width: auto;
margin: 0 auto;
border-radius: 0;
padding: 1em;
}
}
</style>
</head>
<body>
<div>
<h1>Example Domain</h1>
<p>This domain is established to be used for illustrative examples in documents. You may use this
domain in examples without prior coordination or asking for permission.</p>
<p><a href="http://www.iana.org/domains/example">More information...</a></p>
</div>
</body>
</html>
我没有正确解释,我的意思是从http响应中提取主体而不是html响应的主体。换句话说,如何提取http的正文响应(在\ r \ n \ r \ n之后的响应中的部分),此代码仅用于演示目的......
答案 0 :(得分:2)
sed -n '/<body>/,/<\/body>/p' filename
打印所有内容
答案 1 :(得分:0)
如果你想在身体标签包括和标签之间提取所有内容,那么下面的内容也可以帮助你。
awk '/<body/,/<\/body>/' Input_file
如果你不想和输出中的标签,那么下面可能会帮助你。
awk '/<\/body>/{a="";next} /<body>/{a=1;next} a' Input_file
答案 2 :(得分:0)
输出body
内部HTML(不带body
标记):
sed -n '/<body/,/<\/body>/{//!p}' file