0

ここで質問があります。どうぞよろしくお願いいたします。

以下のような入力ファイルがあります (列 1 は ID 名、列 2 は一連の値で構成されます)。「NN」が 3 回以上出現する行のみを表示することはできますか? grepコマンド(おそらくパターンオプション)を使用して実行できると思いますが、どうすればよいかわかりません。

入力ファイル:

ID_a NN;AT;AA;AC;NN
ID_b NN;NN;NN;NN;NN
ID_c NN;NN;AC;AC;NN
ID_e NN;AG;NN;NN;AC
ID_f AA;TT;CG;AA;TA

目的の出力ファイル

ID_b NN;NN;NN;NN;NN
ID_c NN;NN;AC;AC;NN
ID_e NN;AG;NN;NN;AC
4

3 に答える 3

1
$ awk 'gsub(/NN/,"&")>=3' file
ID_b NN;NN;NN;NN;NN
ID_c NN;NN;AC;AC;NN
ID_e NN;AG;NN;NN;AC

または、必要に応じて:

$ awk -F'NN' 'NF>=4' file
ID_b NN;NN;NN;NN;NN
ID_c NN;NN;AC;AC;NN
ID_e NN;AG;NN;NN;AC
于 2013-08-28T04:02:32.657 に答える
1

grep 'NN.*NN.*NN' < input.file

機能一覧はこちら

.*任意の回数繰り返される任意の数の文字を指します。NN 間のものと一致します。

于 2013-08-27T04:33:38.470 に答える