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 が使用されることに注意してください。このフラグは必要ない場合もあります)。