大容量テキストファイルで奇妙な文字を検出する

大容量テキストファイルで奇妙な文字を検出する

ファイル全体に「A」、「T」、「G」、「C」の4文字しか含まれていないことを確認してください。私はsedを使用して文字を分割し、grep -oと-vを使用して検証対象の文字を除外しました。

Linuxでこれを行う簡単で直接的な方法はありますか? sed/awk/grepを使用していますか?

(この関連する質問に対する提案があるようですが、コマンドにフルテキストが含まれています。これと比較して、ファイルサイズが大きすぎます。)

たとえば、入力ファイルには4つの行があり、その行に別の文字(ATGCを除く)があるとします。可能であれば、奇数文字を検出して奇数文字とその文字を含む行番号を表示したいと思います。

入力する:

ATTGTAAGGTAAGTGGATTYTCCGGGRETC
TTVGGATCGTTGACCAGTK
GCCCGGGCCGGTCCTTTGGTGCGTGGGG
CTCTCCCAACCCCCCCACCCTCGACCTGAGCTCAGGCXC

希望の出力:

1:Y
1:R
1:E
2:V
2:K
4:X

ベストアンサー1

-N各出力行の前に1から始まる行番号を追加します。
- モールド一致する部分だけが印刷されます。
[^ATGC] 文字を除外します。

grep -no '[^ATGC]' file

おすすめ記事