Grep-Mustersyntax

Grep-Mustersyntax

ich habe eine Datei mit Namen, die ich aus drei Dateien erstelle. ich möchte grep 0, wenn das Muster in einer Datei fehlt, und 1, wenn das Muster vorhanden ist. Ich verwende diesen Befehl

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

ich bekomme diesen Fehler

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

Antwort1

Dieser Fehler bedeutet, dass Sie einen Quantifizierer wie „ *oder +“ ohne Vorzeichen haben.

Ich vermute, Sie möchten nicht, dass die Wörter in X.namals reguläre Ausdrücke behandelt werden, sondern wörtlich abgeglichen werden. In PCRE können Sie Teile des Musters in einschließen \Qund \Ein Anführungszeichen setzen.

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

verwandte Informationen