Perl ソリューション:
perl -ne 'print if tr/,// > 4'
-n
ファイルを 1 行ずつ読み取ります- tr 演算子は一致数を返します。
4 行未満の行を出力するには、>
を変更するだけです <
まで .
grep
の使用 コマンド:
grep -E '(,.*){5}' myfile
仕事をします。説明:
-E
:拡張正規表現を使用します...
'(,.*)
:... 1 つのカンマの後に任意の数の文字が続くものを検索するには ...
{5}'
:...そして、前のパターンを 5 回繰り返します。
カンマが 4 つ未満の行を grep したい場合は、以下が必要です:
grep -xE '([^,]*,){0,3}[^,]*' myfile
今回は -x
が必要です そのため、パターンは行の先頭と末尾の両方に固定されているため、行全体に一致します。 [^,]*
を使用します .*
の代わりに 後者は、そうでなければ ,
を含む文字列とうまく一致するためです。 s as .
すべてに一致
別のアプローチは、 -v
で逆にすることです 以前のアプローチ。 "Fewer that 4" は not と同じです 「少なくとも 4」なので、
grep -vE '(,.*){4}' myfile
awk
バージョン:
awk -F, 'NF > 5' myfile