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

おすすめ記事