
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.nam
sejam tratadas como expressões regulares; elas devem ser correspondidas literalmente. No PCRE, você pode incluir partes do padrão \Q
e \E
citá-las.
cat X.nam |xargs -i grep -c -P '\Q{}\E$' A.nam > a