grep -aiH '^WARN\|^ERROR\|^FATAL' myLogFile.log | \
...
我寫
if (!line.startsWith("ERROR") || !line.startsWith("WARN")
|| !line.startsWith("FATAL")) {
...
但是,如何將一個兼顧 「i
」 標誌,進行比較的情況下無動於衷?
grep -aiH '^WARN\|^ERROR\|^FATAL' myLogFile.log | \
...
我寫
if (!line.startsWith("ERROR") || !line.startsWith("WARN")
|| !line.startsWith("FATAL")) {
...
但是,如何將一個兼顧 「i
」 標誌,進行比較的情況下無動於衷?
只是轉換線變成大寫字母串首先,用這種方法:
http://docs.oracle.com/javase/1.3/docs/api/java/lang/String.html#toUpperCase()
所以不是!line.startsWith(...)
寫!line.toUpperCase().startsWith(...)
。
可能也想看看公地郎StringUtils的:
http://commons.apache.org/lang/api/org/apache/commons/lang3/StringUtils.html
例如!StringUtils.startsWithIgnoreCase(line, "ERROR")
這具有空安全以及利益;如果line
爲空,它將返回false而不是拋出NullPointerException。
終於 - 你也可以嘗試類似!line.matches("(?i)(WARN|ERROR|FATAL).*")
不錯,乾淨。謝謝 – JAM 2011-12-19 20:39:18