複数行の正規表現を許可するツールはLinuxにありますか?

複数行の正規表現を許可するツールはLinuxにありますか?

Linuxでは、複数行の正規表現の結果を見つけたいと思います。 grepを試しましたが、ほとんどのLinuxユーティリティと同様にラインベースです。

複数行を検索して一致を簡単に出力できるような同様の機能はありますか?

直接正規表現を提供できない場合、Perl、awkなどは使用できません。

質問

私はSubversionリポジトリでsvn propget --recursiveを実行し、^http [^]形式の正規表現を必要とするすべてのトランクエントリを抽出しようとしています。トランク。$$(行の先頭に「http」で始まり、空白行で終わります。

ベストアンサー1

解析したい正確な形式がわかりません。常に段落の先頭にある場合http(段落が1つ以上の空行で区切られている場合)、段落モード(各段落はレコードです)でawkを呼び出してから始まるレコードを印刷できますhttp。 Perlも同様のパターンを持っています。

awk -vRS= '/^http[^ ]/'
perl -000 -ne 'print if /^http[^ ]/'

常に前に空白行がない場合は、空白行が表示されたら印刷を開始および停止httpできます。httpたとえば、

awk '/^http[^ ]/, /^$/'
perl -ne 'print if /^http[^ ]/../^$/'

おすすめ記事