
나는 세 개의 파일로 만든 이름을 가진 파일을 가지고 있습니다. 파일에 패턴이 없으면 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