grep 패턴 구문

grep 패턴 구문

나는 세 개의 파일로 만든 이름을 가진 파일을 가지고 있습니다. 파일에 패턴이 없으면 grep 0을 원하고 패턴이 있으면 1을 원합니다. 이 명령을 사용하고 있습니다.

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

이 오류가 발생합니다

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

답변1

이 오류는 앞에 수량자가 있거나 아무것도 없다는 뜻입니다 *.+

나는 당신이 단어를 정규 표현식으로 취급하는 것을 원하지 않는다고 생각합니다. X.nam문자 그대로 일치해야 합니다. PCRE에서는 패턴의 일부를 포함하고 \Q인용 \E할 수 있습니다.

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

관련 정보