sintaxe do padrão grep

sintaxe do padrão grep

eu tenho um arquivo com nomes que faço com três arquivos. eu quero grep 0 se o padrão estiver ausente em qualquer arquivo e 1 se o padrão estiver presente, estou usando este comando

cat X.nam |xargs -i grep -c -P '{}$' A.nam > a

Estou recebendo este erro

grep nothing to repeat

X.nam
A
AADLGS
AAEGVG
AAGVGTWP
AASLSSIT
AASLSSVN
AASLTGCN
ACL*AML
ACLSGSA
ACL*VVM
A.nam
AAGVGTWP
AASLSSIT
AASLSSVN
AASLTGCN
ACL*AML
ACLSGSA

Responder1

Esse erro significa que você tem um quantificador igual *ou +sem nada antes dele.

Suspeito que você não deseja que as palavras X.namsejam tratadas como expressões regulares; elas devem ser correspondidas literalmente. No PCRE, você pode incluir partes do padrão \Qe \Ecitá-las.

cat X.nam |xargs -i grep -c -P '\Q{}\E$' A.nam > a

informação relacionada