В Unix "less", могу ли я перейти к следующей строке, которая НЕ содержит X?

В Unix less инструмент, можно ли перейти к следующей строке, которая не содержит определенного выражения?

Иногда мне приходится просматривать файлы, содержащие тысячи похожих смежных строк, которые, например, все говорят "Вычисление чего-либо", и меня интересует следующая строка после текущего блока, в которой нет слова "Вычисление".

2 ответа

Решение

Да, это не совпадающая функция поиска, например:

less file.conf

тогда вы печатаете / и после этого ! Ваша последняя строка должна выглядеть так:

Non-match /

затем введите свой шаблон, например Non-match /^# искать первую строку без начала #

Вместо ! персонаж, которого вы также можете использовать Ctrl+N,

Как дополнение к ответу Casual Coder:

Вы также можете отфильтровать строки в целом:

<logfile grep -v mypattern |less 

Недостатком является то, что вы должны выйти и перезапустить grep, чтобы изменить шаблон; Преимущество заключается в том, что линии, которые вы не хотите видеть, скрыты, что облегчает поиск интересных шаблонов в линиях, которые вас интересуют.

Вы можете не только переходить между строками, не содержащими X, но и скрывать строки, содержащие X, используя less"s & команда фильтра регулярных выражений.

less file.conf

затем введите &!^Computingтогда enter ключ и все эти строки будут скрыты от глаз.

Вы все еще можете искать в оставшихся строках с /,

Найдя нужную строку, вы можете вернуть остальных, если вам нужен их контекст - введите & тогда enter ключ для удаления фильтра.

Другие вопросы по тегам