В 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
ключ для удаления фильтра.