我已經得到了翻出次數字嚴重性Word中的漏洞出來後在一個文件中試圖反覆使用awk一個文件操作和sed
請不要笑得太硬線:
cat <file> | sed '1,/vulnerabilities/d' | grep -c '"severity": 4'
這將返回一個「嚴重性」的計數:4個匹配的文件。我似乎無法在其他文件中進行迭代。
我有100個左右的文件形式bleeblah-082017。 bleeblah可以是不同的長度和文字。我在如何從上面的一個文件輕鬆地迭代以分別獲取每個結果方面遇到問題。
我通常會使用awk行遍歷列表,但我似乎無法找到任何示例來融合awk和sed。
任何人都不知道如何執行上面的任務在許多文件上並返回每個文件的結果嗎?
感謝 戴維
我有了一堆的條目如文件:
{ 「計數」:6,
「plugin_family」: 「雜項」, 「plugin_id」: 7467253, 「PLUGIN_NAME」: 「等等」, 「嚴重性」:4, 「severity_index」:1, 「vuln_index」:13
我想以提取時間 「嚴重性」:4次後出現詞漏洞在每個文件中有聯繫。輸出將是10
更多的輸入文件。
"notes": null,
"remediations": {
"num_cves": 20,
"num_hosts": 6,
"num_impacted_hosts": 2,
"num_remediated_cves": 6,
"remediations": [
{
"hosts": 2,
"remediation": "Apache HTTP Server httpOnly Cookie Information Disclosure: Upgrade to Apache version 2.0.65/2.2.22 or later.",
"value": "f950f3ddf554d7ea2bda868d54e2b639",
"vulns": 4
},
{
"hosts": 2,
"remediation": "Oracle Application Express (Apex) CVE-2012-1708: Upgrade Application Express to at least version 4.1.1.",
"value": "2c07a93fee3b201a9c380e59fa102ccc",
"vulns": 2
}
]
},
"vulnerabilities": [
{
"count": 6,
"plugin_family": "Misc.",
"plugin_id": 71049,
"plugin_name": "SSH Weak MAC Algorithms Enabled",
"severity": 1,
"severity_index": 0,
"vuln_index": 15
},
{
"count": 6,
"plugin_family": "Misc.",
"plugin_id": 70658,
"plugin_name": "SSH Server CBC Mode Ciphers Enabled",
"severity": 1,
"severity_index": 1,
"vuln_index": 13
},
{
"count": 2,
"plugin_family": "Web Servers",
"plugin_id": 64713,
"plugin_name": "Oracle Application Express (Apex) CVE-2012-1708",
"severity": 2,
"severity_index": 2,
"vuln_index": 12
},
這些文件中的每一個都來自已從我的掃描程序API中提取的漏洞掃描。基本上,嚴重性這個詞在不同方面(主機,病毒等)的地方都是如此。我想從每個掃描文件中提取模式在單詞漏洞(每個文件只出現一次)之後出現的次數。打開使用perl python可以實現此目的。過去只是更熟悉shell腳本來操縱這些文本類型文件。
這真的是不完全清楚,我你想實現作爲第一個語句是什麼有點模棱兩可。我可以建議你包含一個(小)樣本輸入文件和你期望的輸出嗎? –
我也不明白你的問題。該行是JSON。你應該更好地使用Perl或Python來解析(也可以過濾它)。至少有一個oneliner使其成爲多行。你在談論「遍歷列表」 - 「」包含這些JSON對象在每行中嗎?並且:「彙編awk和sed」你可以單獨使用'awk'來執行任何sed操作。顯示一個包含單詞「漏洞」的例子''。 –
添加更多上下文輸入行 – RomanPerekhrest