単一行に制限されていないディレクトリを単純に正規表現で検索したいです。
私はgrepとackを試しましたが、どちらもこれをサポートしていないようです。
私の選択したテキストエディタ(Sublime Text)で問題なく処理できるため、(私の場合は)計算コストが高すぎてはいけないことを知っています。
この単純なコマンドラインバージョンを探しています。Googleはpcregrepを公開しましたが、Macでそれを見つけることができないようです。適切な場所を見ていませんか?
単一行に制限されていないディレクトリを単純に正規表現で検索したいです。
私はgrepとackを試しましたが、どちらもこれをサポートしていないようです。
私の選択したテキストエディタ(Sublime Text)で問題なく処理できるため、(私の場合は)計算コストが高すぎてはいけないことを知っています。
この単純なコマンドラインバージョンを探しています。Googleはpcregrepを公開しましたが、Macでそれを見つけることができないようです。適切な場所を見ていませんか?
回答:
あなたが探しているものを正確に言っていないので、改行を無視して、ファイルに112の後に223が含まれているかどうかを調べるタスクを想像します。
少し工夫されたawk
ソリューション:
awk -vRS='' '/112.*223/ { print "found it"; exit }' file.in
RS
変数は、レコード区切りが含まれています。空の文字列に設定すると、ファイル全体が1つのレコードとして読み取られます。
これはおそらく、大きなファイルでは非常にメモリ効率が悪いでしょう。
ところで、私はOpenBSDでこれを行っていますが、OS X awkも同じように動作するはずです。
v
との間にスペースが必要RS
です。すなわちawk -v RS='' '/112.*223/ { print "found it"; exit }' file.in
「pcregrep」は、古い安定版pcregrep
と新しい安定版を参照できますpcre2grep
。どちらも、PCREプロジェクトpcre.org
によって提供されています。
Mac Portsは、前者をポートの一部として提供しpcre
(バージョン8.40で安定)、後者をポートの一部として提供しますpcre2
(現在はバージョン10.22)。経由でインストール:
% sudo port install pcre2
grep
、あなたは(あなたが欲しいものを見つけるのコンテキストヘルプを-C1
)?