LoginSignup
1
1

More than 5 years have passed since last update.

grep > パイプ(|)後にも色を保持する > --color=always > grep -vは無効になる

Last updated at Posted at 2018-07-07
動作環境
GeForce GTX 1070 (8GB)
ASRock Z170M Pro4S [Intel Z170chipset]
Ubuntu 16.04.4 LTS desktop amd64
TensorFlow v1.7.0
cuDNN v5.1 for Linux
CUDA v8.0
Python 3.5.2
IPython 6.0.0 -- An enhanced Interactive Python.
gcc (Ubuntu 5.4.0-6ubuntu1~16.04.4) 5.4.0 20160609
GNU bash, version 4.3.48(1)-release (x86_64-pc-linux-gnu)
scipy v0.19.1
geopandas v0.3.0
MATLAB R2017b (Home Edition)
ADDA v.1.3b6
gnustep-gui-runtime v0.24.0-3.1
PyMieScatt v1.7.0
GNU grep 2.25

grepとパイプ(|) > 単色になる

ADDAという光散乱数値シミュレーションのソースコードを読み続けている。

param.c
...
opt_index opt; // main option index; it is also defined as extern in param.h
...

optはどこで使われるかgrepしてみるが、optionsやoptimizationなどの無関係なものも表示される。
パイプ(|)後にgrep -vで除外キーワードを指定すると、grepの結果が単色になってしまう。

パイプ後にも色を保持するにはどうするか?

対処 > --color=always

参照: Preserve colouring after piping grep to grep

--colorでalwaysを指定する。
https://explainshell.com/explain?cmd=grep+--color%3Dalways

$grep --color=always opt *.c | grep -v options

qiita.png

パイプの後でも色付けが保持された。

| lessとの組合せはだめ 

lessと組合わせた場合は下記となった。

qiita.png

スクロールできるようにするには別の方法が必要。

bug? > grep -vが無効になる

$grep --color=always opt *.c | grep -v options

結果にoptionsも含まれている。

grep > grep --color=always opt *.c | grep -v option > optionが除外されない理由
にその理由を書いた。

備考 > naming

一般過ぎるoptというキーワードはソースリーディング者の負担が大きい。
検索性の高い変数名を定義できるのは、良きエンジニアの特性だと考えている。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1