我如何结合这两行,如果发现任何 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
,然后如果该输出中有任何内容,将打印错误消息,否则不会打印任何内容