Shell
shell 腳本 + 匹配日誌文件中的 MAJOR 和 CRITICAL 字元串
我需要匹配具有 MAJOR 和 CRITICAL 字元串的行
出現在 ERROR:< 任何整數 >
請建議如何使用一個 awk 或 sed 命令來做到這一點?
more HW_Log.txt CHK_HW ERROR:0 INFO self_monitor Verifying HW machine CHK_HW ERROR:1 MAJOR self_monitor Verifying HW machine CHK_HW ERROR:1 CRITICAL self_monitor Verifying HW machine
這可以使用
grep
如下方式完成:$ grep "ERROR:[0-9]* \(CRITICAL\|MAJOR\)" /path/to/file
awk
命令:awk '/ERROR\:[0-9]+[ \t]+(CRITICAL|MAJOR)/ {print}' path_to_file
sed
命令:sed -ne '/ERROR\:[0-9]\+[ \t]\+\(CRITICAL\|MAJOR\)/p' path_to_file
awk
描述:'/ERROR\:[0-9]+[ \t]+(CRITICAL|MAJOR)/ {print}' ^ ^ regexp command
- $$ 0-9 $$+ - 一位或多位數字
- $$ \t $$+ - 一個或多個空格和製表符
- (CRITICAL|MAJOR) - “CRITICAL”或“MAJOR”
- print - 列印線
sed
描述:-n, --quiet, --silent suppress automatic printing of pattern space -e script, --expression=script add the script to the commands to be executed '/ERROR\:[0-9]\+[ \t]\+\(CRITICAL\|MAJOR\)/p' ^ ^ regexp command
- $$ 0-9 $$+ - 一位或多位數字
- $$ \t $$+ - 一個或多個空格和製表符
- $ CRITICAL|MAJOR $ - “關鍵”或“主要”
- p - 列印線