1. ホーム
  2. linux

[解決済み】grepと同様にテキストをハイライトするが、テキストをフィルタリングしない [duplicate]

2022-03-29 07:09:16

質問

grep を使用すると、正規表現にマッチした行のテキストがハイライトされます。

このような動作をさせたいが、grepがすべての行も出力するようにしたい場合はどうすればよいでしょうか。grepのmanページをざっと見ただけでは、何も思いつきませんでした。

解決方法は?

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