bash:行にegrepエラーとechoエラーが発生しました。

bash:行にegrepエラーとechoエラーが発生しました。

これらの2行をどのように組み合わせることができ、TunerParamsおよび/またはCalicinternalが見つかったら、「Error: Rule 19: Tunerparams and/or Calicinternal in script at line X,Y...」をエコーし​​ます。

{
egrep -E "TunerParams|CalcInternal" $INPUT_FILE -n | cut -d ":" -f 1
echo "error: Rule 19: Tunerparams and/or Calicinternal in Script at line"
}

答え1

awk '/TunerParams|CalcInternal/ {print "error: Rule 19: Tunerparams and/or Calicinternal in Script at line", NR}' $FILENAME

答え2

ocurranの解決策はawk良い解決策です。あなたはこれに特に興味があるようですので、egrepいくつかのステップを踏むべきです:

line="$(egrep -E "TunerParams|CalcInternal" "$INPUT_FILE" -n | cut -d ":" -f 1)"
if [[ -z $line ]]; then
    printf 'error: Rule 19: Tunerparams and/or Calicinternal in Script at line %s\n' "$line"
fi

コマンドの出力をキャプチャし、egrepその出力に内容がある場合はエラーメッセージを印刷し、そうでなければ何も印刷しません。

関連情報