从卷曲输出中除了“200”以外的所有状态

时间:2014-12-02 23:37:20

标签: shell curl grep

我的Shell脚本有“n”个curl命令,其输出显示如下:

“n”状态将根据我的“for循环”显示。

从这个输出我想要除了“HTTP / 1.1 200 OK”以外的所有状态,然后将其写入文件。请帮助我。我被卡住了。

upload completely sent off: 74 out of 74 bytes
 HTTP/1.1 500 Internal Server Error
 Content-Security-Policy: 
 Content-Type: text/plain

 HTTP/1.1 200 OK
 Content-Security-Policy: default-src 'self'
 Content-Type: text/plain

1 个答案:

答案 0 :(得分:1)

如果你想提取那些"块"哪个不包含200 Status,grep不是正确的工具,因为它可以进行基于行的匹配。

试试这个单行:

awk -v RS="" '!/ 200 OK/ input> output

如果您只想抓住这些状态行,例如。您可以尝试HTTP/1.1 500 Inter....

grep -P 'HTTP/1\.1(?!\s*200 OK)' input