ログファイルで一致させるキーワードを含む配列を作成し、一致する行をstdoutに表示しました。 1行に複数のキーワードが含まれている場合は、1行のすべてのキーワードを強調表示するように出力したいと思います。現時点では、一致する色の1つだけを着色します。 2 つのキーワードが同じ行にある場合は、1 つだけ色が付けられます。出力は現在の標準出力に表示する必要があります。
現在のサンプル出力。E:
キーワードには色はありませんUnable
。
第二:できないパッケージドッカーを探す
#!/bin/bash
search_keywords=("ERROR" "Err" "E:" "W:" "Couldn't" "cleanly" "error" "unable" "failed" "fatal")
log_file="/home/user/example.log"
for keyword in "${search_keywords[@]}"
do
grep -n --color "$keyword" $log_file
done
ベストアンサー1
@balkiが説明した例に従ってください。
#! /usr/bin/env bash
search_keywords=( "ERROR" "Err" "E:" "W:" "Couldn't" "cleanly" "error" "unable" "failed" "fatal" )
data="E: Unable to locate package docker"
declare -a flags
for keyword in "${search_keywords[@]}"; do
flags+=( -e $keyword )
done
grep -i --color=always "${flags[@]}" <<< "$data"