特定の数を超える特殊文字を含むテキストから行を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行ずつ読み取ります4未満の行を印刷するには、>
を<
に変更するだけです。
grep
コマンドの使用:
_grep -E '(,.*){5,}' myfile
_
仕事をします。説明:
_-E
_:拡張正規表現を使用します。
'(,.*)
:... 1つのコンマとそれに続く任意の数の文字(ゼロでも)を検索します。
_{5,}'
_:...そして前のパターンを5回以上繰り返します。
カンマが4つ未満の行をgrepする場合は、_{5,}'
_を_{0,3}'
_に置き換えます。
awk
バージョン:
awk -F, 'NF > 5' myfile