Czy w Unixie „mniej” mogę przejść do następnego wiersza, który NIE zawiera X?


21

Czy w lessnarzędziu uniksowym można przejść do następnego wiersza, który nie zawiera określonego wyrażenia?

Czasami muszę przeglądać pliki zawierające tysiące podobnych sąsiednich linii, które na przykład wszystkie mówią „Obliczanie czegoś ” i jestem zainteresowany następną linią po bieżącym bloku, która nie zawiera słowa „Obliczanie”.

Odpowiedzi:


29

Tak, jest to funkcja wyszukiwania niezgodnego, na przykład:

less file.conf

następnie piszesz, /a następnie !twój ostatni wiersz powinien wyglądać następująco:

Non-match /

następnie wpisz na przykład swój wzór, Non-match /^#aby wyszukać pierwszą linię bez początku#

Zamiast !postaci możesz także użyć Ctrl+N.


1
To jest doskonałe. Nie mogłem oczekiwać lepszej odpowiedzi.
dehmann

4

Jako dodatek do odpowiedzi Casual Coder:

Możesz także całkowicie odfiltrować linie:

<logfile grep -v mypattern |less 

Wadą jest to, że musisz wyjść i ponownie uruchomić grep, aby zmienić wzór; zaletą jest to, że linie, których nie chcesz widzieć, są ukryte, co ułatwia dostrzeżenie interesujących wzorów w liniach, które Cię interesują.


1

Nie tylko można przeskoczyć między liniami, które nie zawierają X, można ukryć linie, które zawierają X, używając less„s &polecenie filtr regex.

less file.conf

następnie wpisz &!^Computingwtedy enterklucz i wszystkich tych linii będzie widoczne.

Nadal możesz wyszukiwać w pozostałych liniach za pomocą /.

Gdy znajdziesz linię, którą chcesz, możesz przywrócić pozostałe, jeśli potrzebujesz ich kontekstu - wpisz &następnie enterklucz, aby usunąć filtr.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.