
Tengo un archivo con nombres que hago con tres archivos. Quiero grep 0 si el patrón está ausente en algún archivo y 1 si el patrón está presente. Estoy usando este comando.
cat X.nam |xargs -i grep -c -P '{}$' A.nam > a
Recibo este error
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
Respuesta1
Ese error significa que tienes un cuantificador como *
o +
sin nada antes.
Sospecho que no desea que las palabras X.nam
se traten como expresiones regulares, deben coincidir literalmente. En PCRE, puede encerrar partes del patrón \Q
y \E
citarlas.
cat X.nam |xargs -i grep -c -P '\Q{}\E$' A.nam > a