Você parece querer que os caracteres [
e ]
sejam tratados literalmente, em vez de indicar um intervalo de caracteres. Você pode fazer isso escapando deles:
grep 'CurrentPrincipal\[LegalEventAssociation\]' file
dado:
$ cat file
823,agg.listgroup,CurrentPrincipal[MRC],CompanyElementDefinition
d4f170,atom.list,CurrentPrincipal[MRC][Type][*],CompanyElementDefinition
1097,agg.listgroup,CurrentPrincipalLegalEventAssociation,CompanyElementDefinition
c755ad,atom.list,CurrentPrincipal[LegalEventAssociation][Type][*],CompanyElementDefinition
8798c3,atom.list,CurrentPrincipal[MailingAddressStreetLine1][*],CompanyElementDefinition
então
$ grep 'CurrentPrincipal\[LegalEventAssociation\]' file
c755ad,atom.list,CurrentPrincipal[LegalEventAssociation][Type][*],CompanyElementDefinition
Como alternativa, use a opção -F
ou --fixed-strings
para dizer ao grep para tratar todos os caracteres literalmente:
$ grep -F 'CurrentPrincipal[LegalEventAssociation]' file
c755ad,atom.list,CurrentPrincipal[LegalEventAssociation][Type][*],CompanyElementDefinition