web-dev-qa-db-ja.com

特定の数を超える特殊文字を含む行をgrepする方法

特定の数を超える特殊文字を含むテキストから行をgrepするための最良の方法を知りたいのですが。

各行に4つのコンマが含まれていることをすでに知っているとしましょう,そして4つ以上のコンマを含む行をgrepしたい,

hi,hello,how,are,you
catch,me,then,say,hello,then

出力

catch,me,then,say,hello,then

Perlソリューション:

Perl -ne 'print if tr/,// > 4'
  • -nはファイルを1行ずつ読み取ります
  • tr演算子 は一致の数を返します。

4未満の行を印刷するには、><に変更するだけです。

4
choroba

grepコマンドの使用:

_grep -E '(,.*){5,}' myfile
_

仕事をします。説明:

_-E_:拡張正規表現を使用します。

'(,.*):... 1つのコンマとそれに続く任意の数の文字(ゼロでも)を検索します。

_{5,}'_:...そして前のパターンを5回以上繰り返します。

カンマが4つ未満の行をgrepする場合は、_{5,}'_を_{0,3}'_に置き換えます。

1
dr_

awkバージョン:

awk -F, 'NF > 5' myfile
1
n.caillou