Bash - grep&只回显出现的麻木

时间:2016-09-08 14:41:39

标签: bash

我正在努力只用亚麻布显示错误消息。

e.g。

ERROR: Rule19: Tunerparams and/or CalcInternal in Script at 13, 15, 22

请你检查并帮我把它弄好(我对此很新)

checkCodingRule19()
{ 
   grep -En  "TunerParams|CalcInternal" $INPUT_FILE && 
   echo "error: ´Rule 19: Tunerparams and/or Calicinternal in Script at $line"
}

2 个答案:

答案 0 :(得分:0)

您可以使用这个简单的grep脚本代替awk

awk '(NR==13 || NR==15 || NR==22) && /TunerParams|CalcInternal/' file.log
  • NR==13 || NR==15 || NR==22将仅对第13,15行和第13行执行此命令。 22
  • /TunerParams|CalcInternal/将在一行中搜索这些模式
  • 最好先检查一下行号,以避免每行都进行正则表达式搜索。

答案 1 :(得分:0)

line=`awk '$0 ~ /Tunerparams|CalcInternal/ {printf NR ", " }' < $INPUT_FILE | sed "s/, $//"`
echo "error: Rule 19: Tunerparams and/or Calicinternal in Script at $line"

技术说明

使用awk在$ INPUT_FILE中搜索Tunerparams或CalcInternal。每次匹配时,打印行号NR。附加“,”。将输出传递给sed以修剪最后一个逗号。 $line现在有逗号分隔的数字列表。所以简单地回应它。

我注意到你的echo语句中有一个“'”可能不属于。