0

大きな txt ファイルがあり、種名「ABS」で始まる seq id を探しています。「ABS」をgrepすると、ABSのリストのみが取得されますが、seq idの後にその単語が続くことはありません。たとえば、私が探しているもののリストは次のようになります。

ABS|contig05671,
ABS|contig04453,
ABS|CL5170Contig1,
ABS|contig02526,

しかし、「ABS」ファイル名.txtをgrepすると、次のような結果が得られます。

ABS,
ABS,
ABS,
ABS,

どんな助けでも大歓迎です。前もって感謝します。

4

1 に答える 1

1

からman grep:

Context Line Control
   -A NUM, --after-context=NUM
          Print NUM  lines  of  trailing  context  after  matching  lines.
          Places   a  line  containing  a  group  separator  (--)  between
          contiguous groups of matches.  With the  -o  or  --only-matching
          option, this has no effect and a warning is given.

   -B NUM, --before-context=NUM
          Print  NUM  lines  of  leading  context  before  matching lines.
          Places  a  line  containing  a  group  separator  (--)   between
          contiguous  groups  of  matches.  With the -o or --only-matching
          option, this has no effect and a warning is given.

   -C NUM, -NUM, --context=NUM
          Print NUM lines of output context.  Places a line  containing  a
          group separator (--) between contiguous groups of matches.  With
          the -o or --only-matching option,  this  has  no  effect  and  a
          warning is given.

したがって、一致する行と次の行が必要な場合は、 を実行しgrep -A1 ABS file.txt、前の行についても同様に を実行し-B1ます。

ただし、結果を別の方法でフォーマットしたい場合 (たとえば、2 つの行を 1 つにまとめてパイプ文字で区切るなど) は、 とは別のツールが必要ですgrepgrep検索を行いますが、編集も必要です。

于 2013-09-16T19:15:16.013 に答える