"|"를 사용하여 grepping 대체 연산자
다음은 AT5G60410.gff라는 큰 파일의 샘플입니다.
Chr5 TAIR10 gene 24294890 24301147 . + . ID=AT5G60410;Note=protein_coding_gene;Name=AT5G60410
Chr5 TAIR10 mRNA 24294890 24301147 . + . ID=AT5G60410.1;Parent=AT5G60410;Name=AT5G60410.1;Index=1
Chr5 TAIR10 protein 24295226 24300671 . + . ID=AT5G60410.1-Protein;Name=AT5G60410.1;Derives_from=AT5G60410.1
Chr5 TAIR10 exon 24294890 24295035 . + . Parent=AT5G60410.1
Chr5 TAIR10 five_prime_UTR 24294890 24295035 . + . Parent=AT5G60410.1
Chr5 TAIR10 exon 24295134 24295249 . + . Parent=AT5G60410.1
Chr5 TAIR10 five_prime_UTR 24295134 24295225 . + . Parent=AT5G60410.1
Chr5 TAIR10 CDS 24295226 24295249 . + 0 Parent=AT5G60410.1,AT5G60410.1-Protein;
Chr5 TAIR10 exon 24295518 24295598 . + . Parent=AT5G60410.1
grep을 사용하여 특정 줄을 추출하는 데 문제가 있습니다. 세 번째 열에 지정된 "gene"유형 또는 "exon"유형의 모든 줄을 추출하고 싶었습니다. 이것이 작동하지 않을 때 나는 놀랐습니다.
grep 'gene|exon' AT5G60410.gff
결과가 반환되지 않습니다. 내가 어디로 잘못 갔습니까?
이스케이프해야합니다 |
. 다음이 작업을 수행해야합니다.
grep "gene\|exon" AT5G60410.gff
기본적으로 grep은 이스케이프되지 않는 한 일반 특수 문자를 일반 문자로 취급합니다. 따라서 다음을 사용할 수 있습니다.
grep 'gene\|exon' AT5G60410.gff
그러나 다음 양식을 사용하여 예상 한 작업을 수행하여 모드를 변경할 수 있습니다.
egrep 'gene|exon' AT5G60410.gff
grep -E 'gene|exon' AT5G60410.gff
이것은 몇 가지 선택에 대한 다른 방법입니다.
grep -e gene -e exon AT5G60410.gff
-e
스위치 지정 다른 패턴이 일치합니다.
이것은 작동합니다 :
grep "gene\|exon" AT5G60410.gff
정규식에서 대체 연산자를 사용 하는 명령에 파이프 명령 을 포함하는 특정 문제를 검색하는 동안이 질문을 찾았 grep
으므로 더 전문적인 답변을 제공 할 것이라고 생각했습니다.
내가 직면 한 오류 는 grep 정규식 |
의 대체 연산자 (즉, |
파이프 연산자와 동일 )가 아닌 이전 파이프 연산자 (예 :)에서 발생한 것으로 밝혀졌습니다 . 나에게 대답 은 문제가 교대 연산자와 관련된 내 grep 정규식에 있다고 가정하기 전에 &와 같은 필요한 특수 쉘 문자 로 적절하게 이스케이프하고 인용하는 것이 었습니다.
예를 들어 로컬 컴퓨터에서 실행 한 명령은 다음과 같습니다.
get http://localhost/foobar-& | grep "fizz\|buzz"
이 명령으로 인해 다음 오류가 발생했습니다.
-bash: syntax error near unexpected token `|'
이 오류는 내 명령을 다음으로 변경하여 수정되었습니다.
get "http://localhost/foobar-&" | grep "fizz\|buzz"
&
큰 따옴표로 문자 를 이스케이프하여 문제를 해결할 수있었습니다. 대답은 대체 작업과 전혀 관련이 없습니다.
참고 URL : https://stackoverflow.com/questions/6775904/grepping-using-the-alternative-operator
'developer tip' 카테고리의 다른 글
transformClassesAndResourcesWithProguardForRelease FAILED (0) | 2020.10.09 |
---|---|
Windows 배치 스크립트 시작 프로그램 및 종료 콘솔 (0) | 2020.10.09 |
Webpack / Babel / React 빌드 오류 :“알 수없는 옵션 : foo / node_modules / react / react.js.Children” (0) | 2020.10.09 |
ES6, 가져온 모듈을 한 줄로 내보내려면 어떻게해야합니까? (0) | 2020.10.09 |
매초마다 React 컴포넌트 업데이트 (0) | 2020.10.09 |