grep と同様にテキストを強調表示しますが、テキストをフィルター処理しません [重複] 質問する

grep と同様にテキストを強調表示しますが、テキストをフィルター処理しません [重複] 質問する

grep を使用すると、正規表現に一致する行内のテキストが強調表示されます。

この動作を希望しながら、grep ですべての行も出力したい場合はどうすればよいでしょうか? grep のマニュアル ページをざっと見たところ、何も見つかりません。

ベストアンサー1

ack を使用します。--passthruここでオプションを確認してください:ああ完全な Perl 正規表現を使用できるという利点もあります。

    $ ack --passthru 'pattern1' file_name

    $ command_here | ack --passthru 'pattern1'

次のように grep を使用して実行することもできます。

    $ grep --color -E '^|pattern1|pattern2' file_name

    $ command_here | grep --color -E '^|pattern1|pattern2'

これはすべての行に一致し、パターンを強調表示します。^は行の先頭すべてに一致しますが、文字ではないため印刷/強調表示されません。

(ほとんどの設定ではデフォルトで --color が使用されることに注意してください。このフラグは必要ない場合もあります)。

おすすめ記事