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