Grepping определенного шаблона и хотите удалить нежелательный шаблон с помощью команды awk - PullRequest
0 голосов
/ 28 марта 2020

У меня есть один текстовый файл a.txt, содержимое которого показано ниже. Я не хотел печатать "широкий" как нарушение, но это проявляется в приведенной ниже команде, которую я использовал. Может ли кто-нибудь помочь мне в этом, чтобы "широкий" не стал нарушением.

Используемая мной команда:

awk '{
  if ($0 =="") {rsave=0} 
  else {if (rsave==0) rule=$1; rsave=1};
  if ($0 ~ ":.* [1-9] violations? found")
    {printf "%s\n", $1; rsave=0} 
  else if ($0 ~ "[1-9] violations? found") 
    {printf "%s\n", rule; rsave=0}}' a.txt \
| sort -u

Вывод, который приходит с помощью вышеуказанной команды:

DM5.S.7:IP_TIGHTEN_BOUNDARY  
DM6.S.7:IP_TIGHTEN_BOUNDARY  
text_net:text_short  
wide

Ожидаемый вывод:

DM5.S.7:IP_TIGHTEN_BOUNDARY  
DM6.S.7:IP_TIGHTEN_BOUNDARY  
text_net:text_short

Содержимое файла a.txt:

            ERROR SUMMARY

 DM5.S.7:IP_TIGHTEN_BOUNDARY : To avoid > 1.4 um x 
 1.4 um Metal empty space after IP abutment Metal 
 empty space must <= 0.7 um x 1.4 um on IP boundary 
 edge Metal empty space must <= 0.7 um x 0.7 um on 
 IP boundary corner
   contains ........................................... 1 violation found.             
   wide ............................................... 4 violations found.

 DM6.S.7:IP_TIGHTEN_BOUNDARY : To avoid > 1.4 um x 
 1.4 um Metal empty space after IP abutment Metal 
 empty space must <= 0.7 um x 1.4 um on IP boundary 
 edge Metal empty space must <= 0.7 um x 0.7 um on 
 IP boundary corner
   contains ........................................... 1 violation found.      
   wide ............................................... 4 violations found.

Violation   
  text_net:text_short ................................ 4 violations found.    
  text_abcd:text_short ................................ 0 violations found.

1 Ответ

0 голосов
/ 28 марта 2020

Самый простой способ сделать это - передать grep -v wide после awk и после sort

Из справочной страницы grep:

v, - invert-match Инвертировать смысл соответствия, чтобы выбрать несовпадающие строки. (-v определяется POSIX.)

...