我想採取html片段並將其傳遞給pygmentize以相應地着色。我想知道如何使用sed或其他cli工具來實現這一目標。sed multiline pygmentize
我嘗試了一堆的sed單行的,並試圖使用以下SO問題:
- Sed multiline replacement question
- Using or in multiline sed replacement
- sed or awk multiline replace
我有以下的日誌:
2012-03-26 18:04:27,385 9372 [main] ERROR web.commons.exception.ServiceInvocationException -
Response from server cannot be decoded to JSON, responsePayload = <html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
<title>Error 404 Not Found</title>
</head>
<body><h2>HTTP ERROR 404</h2>
<p>Problem accessing jetty-url. Reason:
<pre> Not Found</pre></p><hr /><i><small>Powered by Jetty://</small></i><br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
</body>
</html>
org.codehaus.jackson.JsonParseException: Unexpected character ('<' (code 60)): expected a valid value (number, String, array, object, 'true', 'false' or 'null')
at [Source: [email protected]; line: 1, column: 2]
UPDATE我加入這一個較長的命令:
mvn -U test | (while read line; do echo ${line} | sed -e "s/.*ERROR.*/`echo -e '\e[91m&\e[0m'`/g" -e "s/.*\(WARN|INFO\).*/`echo -e '\e[93m&\e[0m'`/g"; done)
你需要在END模式中跳過'/'。另外,考慮到用戶的樣本輸入,我認爲你的解決方案將包括看起來在同一行上的開頭''前面的非html文本。祝你們好運。 – shellter 2012-03-26 22:52:55
嗯。這很奇怪。在預覽中顯示逃生。在最後的答案,它不是! – John3136 2012-03-26 22:56:17
嘿,這很酷,但仍然有第一行的輸入,它將成爲一個更長的命令的一部分。儘管你的回答仍然非常有幫助,但這可能有點過分。如果它太多,我可能會創建一個python程序來提供一些幫助。 – prafulfillment 2012-03-26 23:09:17