[解決済み】grepを使用して複数行にまたがるパターンを見つけるには?
2022-04-02 07:39:24
質問
私は、"abc" と "efg" をこの順番で持ち、その2つの文字列がそのファイル内の異なる行にあるファイルを見つけたいのですが、どうすればいいですか?例:コンテンツを持つファイル。
blah blah..
blah blah..
blah abc blah
blah blah..
blah blah..
blah blah..
blah efg blah blah
blah blah..
blah blah..
一致させる必要があります。
どのように解決するのですか?
Grepはこの操作に不向きなツールです。
pcregrep は、最近のLinuxシステムのほとんどで見かけることができます。
pcregrep -M 'abc.*(\n|.)*efg' test.txt
ここで
-M
,
--multiline
パターンが複数の行にマッチするようにする
より新しい pcre2grep もあります。どちらも PCREプロジェクト .
pcre2grep は Mac OS X 用に以下のサイトから入手できます。
Mac用ポート
ポートの一部として
pcre2
:
% sudo port install pcre2
を経由して ホームブリュー としています。
% brew install pcre
または pcre2 の場合
% brew install pcre2
pcre2grep は もあります。 Linux (Ubuntu 18.04+) の場合
$ sudo apt install pcre2-utils # PCRE2
$ sudo apt install pcregrep # Older PCRE
関連
-
[解決済み] 標準的な10桁の電話番号にマッチする正規表現
-
[解決済み] Linuxで特定のテキストを含むすべてのファイルを検索するにはどうすればよいですか?
-
[解決済み] ファイルを grep して、その周辺の行をいくつか表示する?
-
[解決済み] すべてのディレクトリとサブディレクトリを再帰的にgrepするにはどうしたらいいですか?
-
[解決済み] Gitの履歴からコミットしたコードをgrep(検索)する方法
-
[解決済み] JavaScriptの正規表現でマッチしたグループにアクセスするにはどうすればよいですか?
-
[解決済み] grepによるネガティブマッチング(fooを含まない行にマッチする)
-
[解決済み] 標準出力ではなく標準エラー出力にパイプを通すにはどうしたらいいですか?
-
[解決済み] grepで行番号を取得する
-
[解決済み】特定の拡張子を持つファイルのみを再帰的にgrepするにはどうすればよいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] 正規表現による逆マッチ[重複]の場合
-
[解決済み] 浮動小数点数に対する正規表現
-
[解決済み] ColdFusion を使用して XML 文字列から余分なホワイトスペースをすべて削除するにはどうすればよいですか?
-
[解決済み] 正規表現によるIPv4アドレスの検証
-
[解決済み] 展開された正規表現では、どのように解釈されますか?
-
[解決済み] シェルスクリプトで正規表現を使用するにはどうすればよいですか?
-
[解決済み] 正規表現全体を否定するには?
-
[解決済み] Githubの「ブランチ名パターン」の否定
-
[解決済み】複数行検索のための正規表現(grep)が必要です【重複
-
[解決済み] ファイル内の複数行のパターンを検索するにはどうすればよいですか?