Często używam opcji --colour grep, ale często też używam mniej. Jak mogę obniżyć wyniki grep do mniej i nadal zachować kolorystykę. (Czy to możliwe?)
grep "search-string" -R * --colour | less
EDYCJA :
Szukam bezpośredniego rozwiązania lub czegoś równoważnego z tym.
*
zrobić? Ze strony man grep:*: The preceding item will be matched zero or more times.
Ale wciąż nie rozumiem ...! @JeremyPowellOdpowiedzi:
Po prostu uruchamia
grep --color
to,grep --color=auto
co wykrywa, czy wyjście jest terminalem, a jeśli tak, włącza kolory. Jednak po wykryciu rury wyłącza kolorowanie. Następujące polecenie:Zawsze włącza kolorowanie i zastępuje automatyczne wykrywanie, a otrzymasz podświetlanie kolorów
less
.EDYCJA: Chociaż używanie tylko
less
działa dla mnie, być może starsza wersja wymaga-R
flagi do obsługi kolorów, jak to sugeruje.źródło
less -R
do kodowania kolor powinien być interpretowany przez mniej poprawnieless
, może być zależne od wersji.grep pattern file | grep -v badpattern | grep --colour=always pattern | less -R
, co idealnie spełniło moje potrzeby. (Jeszcze raz dziękuję!)less
i dlatego stracili szansę posiadania specjalnegocolorless
narzędzia. Sama nazwa powinna była zostać wykonana! Prawdopodobnie powinienem napisać łatkę, która wywołuje -R automatycznie, gdy plik binarny jest uruchamiany jakocolorless
.$LESS
ustawić z-R
.Możesz umieścić to w swoim
.bashrc
pliku:lub utwórz taki alias:
i będziesz musiał użyć
-R
opcjiless
, jak wskazano w tym miejscuźródło
grep
pomocąGREP
lub zastąpić--color
opcję ręcznie.W takim przypadku wolę tworzyć małe pliki sh i je włączać
/usr/local/bin
.Zwykle używam
grep
w sposób rekurencyjnypwd
, więc taki jest mój osobisty skrypt:A potem właśnie go skopiowałem jako
/usr/local/bin/g
(tak, często go używam)źródło
g() { grep --color=always -r "$@" . | less -R }
działa identycznie i prawdopodobnie da (nieznacznie) lepszą wydajność.Nie aliasuj „grep”, lepiej alias „less”, który nigdy nie jest używany przez powłoki. W twojej
.bashrc
prostu umieścić:alias less="less -r"
.źródło
grep --color=always
iless -R
. Zauważ, że grep tylko wie, że jest on przesyłany do jakiegoś innego procesu, a--color=auto
opcja używa wyłącznie tych informacji, aby zdecydować, czy wydrukować kolory, czy nie.less
opcja-r
jest inna niż-R
. Prawdopodobnie-R
jest bezpieczniejszy.less
o to w przykładzie, który już używa opcji `--color '.less
obsługuje$LESS
zmienną środowiskową. Dlatego zamiast aliasuexport LESS='-R'
może być preferowane.Musze biec
z flagą -r po mniej , aby to uruchomić.
źródło
*
zrobić? Ze strony man grep:*: The preceding item will be matched zero or more times.
Ale wciąż nie rozumiem ...!