bash:egrep&echo错误在行

bash:egrep&echo错误在行

我如何结合这两行,如果发现任何 TunerParams 和/或 Calicinternal,则仅回显“错误:规则 19:脚本中的 Tunerparams 和/或 Calicinternal 在 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,然后如果该输出中有任何内容,将打印错误消息,否则不会打印任何内容

相关内容