簡単なスクリプトがありますbash
。私のスクリプトの1行は「パターン」と一致する色を探します。
grep -i --color=always -- "$1"
行がコメントでない場合にのみ色が一致するように変更する必要があります(つまり、コメントで始まらない場合#
)。つまり、私はまだgrepがコメント行と一致したいのですが、色を付けないようにしたいのです。
次のテキストファイルがあるとします(行番号が追加されました)。
1 aaa PATTERN
2 bbb ccc PATTERN ddd
3 # eee PATTERN
4 fff ggg
行1、2、3を一致させるには、grep式が必要ですがコメントアウトされていない行(1および2)にのみ色を付けます。
ベストアンサー1
GNU grep
オプションで使用-P
:
$ grep PATTERN file | grep -P '^[^#]*\KPATTERN|^'
aaa PATTERN
bbb ccc PATTERN ddd
# eee PATTERN
\K
PATTERN
一致する文字列から左側のすべての項目が除外されます。このソリューションでは、エイリアスgrep
が次のようになると仮定します。grep --color=auto