7つの数字で構成されるシーケンスではないすべての行を削除します。

7つの数字で構成されるシーケンスではないすべての行を削除します。

次のテキストファイルがあります。

229;39;45;11;21;33;13
230;56;44;41;40;08;53
231;16;59;27;42;44;36
232;29;19;41;22;37;59
233;45;03;24;36;07;32
SP;SP;SP;;;;
234;15;45;54;25;42;41
235;29;41;55;02;31;22
236;10;52;50;57;25;60
237;36;07;45;31;56;57
238;15;09;41;13;37;42
SP;SP;;;;;
239;33;21;44;46;47;06
240;59;28;25;41;57;38
241;11;57;40;35;56;31
242;22;07;04;21;28;56
243;20;47;23;32;16;11
244;19;60;50;24;47;33
245;44;51;27;53;08;60
MG;;;;;;

正しい行は、セミコロンで区切られた一連の7つの数字です。MG;;;;;;または、任意の位置にジャンク行の行があります。SP;SP;;;;;

何千もの行を含むファイルからこれらの誤った行を削除し、一連の7つの数字を含む行だけを維持するには、端末にどのコマンドを入力する必要がありますか?

ベストアンサー1

grep -Ex '[0-9]+(;[0-9]+){6}'

...入力データに基づいて次の出力を生成します。

229;39;45;11;21;33;13
230;56;44;41;40;08;53
231;16;59;27;42;44;36
232;29;19;41;22;37;59
233;45;03;24;36;07;32
234;15;45;54;25;42;41
235;29;41;55;02;31;22
236;10;52;50;57;25;60
237;36;07;45;31;56;57
238;15;09;41;13;37;42
239;33;21;44;46;47;06
240;59;28;25;41;57;38
241;11;57;40;35;56;31
242;22;07;04;21;28;56
243;20;47;23;32;16;11
244;19;60;50;24;47;33
245;44;51;27;53;08;60

おすすめ記事