Obecnie przeglądam wiele nieznanych dzienników, szukając pewnych problemów. Pierwszy plik, na który patrzę, to Events.log i otrzymuję co najmniej trzy strony, na less
których wydaje się wyświetlać to samo zdarzenie w różnym czasie - zdarzenie, które wydaje się być dość łagodne. Chciałbym odfiltrować to wydarzenie i obecnie rezygnuję less
i robię coś takiego
grep -v "event text" Events.log | less
To przynosi teraz wiele innych, nieciekawych wydarzeń, które chciałbym również odfiltrować. Czy istnieje sposób mogę grep -v
wewnątrz od less
? Zamiast robić
egrep -v "event text|something else|the other thing|foo|bar" Events.log | less
Uderza mnie jako przydatna funkcja, gdy patrzę na dowolny plik dziennika - a jeśli less
nie jest to narzędzie, czy jest coś o cechach, których szukam? Po prostu less
przeglądarka w stylu z wbudowanym grep
.
less
, użycie „&! <1stpattern>” pozwala mi „ukryć” linie z włączonym wzorem, jednak dotyczy to tylko jednego wzoru na raz, więc jeśli znajdę drugi wzór i zastosuję „&! <2ndpattern>”, linie pasujące do pierwszego wzoru i ukryte, są teraz widoczne. Tak bardzo blisko!&!
a następnie naciśnij klawisz strzałki.less
; Nie wiem jednak, czy zostało zachowane po ponownym uruchomieniu.Opierając się na odpowiedzi Oriona ,
less(1)
strona podręcznika opisuje(Oczywiście
^N
i^E
itp. Reprezentują Ctrl+ Ni Ctrl+ Eitp.)Okazuje się, że i działają dobrze razem. Na przykład polecenia
&pattern
/pattern
&!arp|dns
Enter/
Ctrl+Kfail|fatal|fault|sd[a-z][0-9]
Enterwpisany w dowolnej kolejności, ukryje (wykluczenie) wszystkie linie zawierające
arp
lubdns
(jakgrep -v
), a następnie w pozostałych liniach wyróżnić wszystkie wystąpieniafail
,fatal
,fault
, lub coś, co wygląda jak nazwa urządzenia SCSI (sd[a-z][0-9]
). Należy pamiętać, że wiersze zawierającearp
lubdns
, a takżefail
dowolne inne niebezpieczne słowa, nie będą wyświetlane.źródło
W ciągu ostatnich kilku miesięcy trochę się zakochałem
fzf
.W przypadku, o ile kontekst nie jest potrzebne (czyli równowartość grepa
-A
,-B
czy-C
nie jest potrzebna, a przy okazji, mniej na&
ma również takie same ograniczenia), następnie fzf jest bardzo potężnym narzędziem.Oto głupi przykład:
Jeśli to uruchomisz i będziesz grać z wejściami takimi jak
aa | bb dd | ee !gg !hh
i tak dalej, szybko zobaczysz, co się dzieje.Dokumentacja Fzf na temat
|
operatora jest niewielka, ale przypuszczam, że dotyczy ona tylko warunków bezpośrednio przed i po, co oznacza w efekcie, że OR ma pierwszeństwo przed AND ( domyślnie ; wszystkie warunki są domyślnie AND) . Ale w większości przypadków nie powinno to stanowić problemu i z mojego doświadczenia wynika, że wszystko działa dobrze.Spróbuj. Uznałem, że jest to zaskakująco przydatne, jeśli chodzi o przeglądanie rzeczy, gdy tak naprawdę nie jestem pewien, czego szukam i kiedy kontekst nie ma znaczenia.
źródło