grep -no가 작동하지 않습니다

grep -no가 작동하지 않습니다

일반적으로 각 개별 일치 항목을 사용할 때 grep -no줄 번호가 있습니다. 예를 들어, 입력할 때 다음을 grep -no "[A|a]" chr22.fa기대합니다.

$ grep -v ">" chr22.fa | grep -o -n "[A|a]" | head -n 17
210201:A
210201:A
210201:A
210201:A
210201:A
210201:A
210201:A
210201:A
210201:A
210201:A
210201:A
210201:A
210201:A
210201:A
210201:A
210202:A
210202:A

그러나 가장 최근 출력은 다음과 같습니다.

$ grep -v ">" chr22.fa | grep -o -n "[A|a]" | head -n 17
210201:A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A

무엇을, 어떤 염색체 txt 파일을 검색하든 동일한 문제가 발생합니다. 이 잘못된 형식이 발생하는 이유를 아는 사람이 있습니까? 도움을 주셔서 미리 감사드립니다.

편집: 임의의 문자 시퀀스가 ​​있는 짧은 파일에 대한 hexdump -C 결과:

00000000  41 41 41 41 41 41 41 41  41 41 0a 62 42 42 42 42 |AAAAAAAAAA.bBBBB|
00000010  41 41 41 0a 42 42 41 42  41 41 42 41 42 41 42 42  |AAA.BBABAABABABB|
00000020  41 42 41 0a 41 42 55 57  42 41 55 41 42 57 44 55  |ABA.ABUWBAUABWDU|
00000030  42 57 55 44 55 57 44 55  0a 41 48 55 44 48 47 55  |BWUDUWDU.AHUDHGU|
00000040  45 47 55 0a 68 65 69 66  68 69 65 68 66 0a 77 65  |EGU.heifhiehf.we|
00000050  68 66 69 68 77 65 66 0a  41 41 0a 68 73 65 66 69 |hfihwef.AA.hsefi|
00000060  68 48 41 0a                                       |hHA.|
00000064

답변1

grep (BSD grep) 2.5.1-FreeBSD
행동은 다음과 다릅니다
grep (GNU grep) 3.40

BSD grep은 GNU grep과 같이 동일한 줄 번호를 반복하는 대신 줄 번호를 한 번만 제공합니다.

GNU grep을 설치할 수 있습니다

brew install grep

ggrep을 기본 grep으로 사용해야 하는 경우 심볼릭 링크를 만들 수 있습니다.

ln -is $(which ggrep) /usr/local/bin/grep

관련 정보