`less` переключатель поиска назад" командной строки?

1635
ultracrepidarian

Я знаю less +/pattern filename, откроет файл и перейдет к первому появлению шаблона. Есть ли способ сказать, lessчтобы искать с конца назад? Он даже принимает более одного +переключателя?

Не работай:

less +?pattern filename less +G +?pattern filename 
0

1 ответ на вопрос

1
davidmneedham

manСтраница lessсостояний синтаксисless +?pattern filename

?pattern Search backward in the file for the N-th line containing the pattern. The search starts at the last line displayed (but see the -a and -j options, which change this). 

Нажмите, nчтобы продолжить поиск шаблона в обратном направлении. Нажмите Nдля поиска шаблона вперед.

пример

Для testfile.txt из

apple banana carrot apple banana carrot apple banana carrot 

less +?banana testfile.txt показывает следующее:

banana carrot 
Страница man не имеет такого явного статуса, и предоставленный вами синтаксис не приводит к желаемому результату. Это работает, в том смысле, что происходит то же самое, как если бы вы открывали файл и пытались выполнить поиск в обратном направлении - вы получаете «Pattern not found». Поиск в обратном направлении не переходит в конец файла, когда вы находитесь в первой строке файла. Поэтому я попытался `less + G +? Pattern filename`, но опять же, читая страницу` man`, оказалось, что разрешен только один `+ cmd`. Итак, похоже, что нет способа достичь того, что я ищу. ultracrepidarian 6 лет назад 0
Я не понимаю, что вы хотите сделать. Можете ли вы привести пример? Синтаксис, который я предоставил выше, ищет термин, начинающийся с последней строки файла, и ищет вверх. davidmneedham 6 лет назад 0
Попробуйте `less + / cd .bash_history` против` less +? Cd .bash_history`. Первый пример открывает файл и переходит к первому появлению `cd` в вашей истории bash (надеюсь, у вас есть). Второй пример ничего не делает, кроме открытия файла, как будто он `less .bash_history`. ultracrepidarian 6 лет назад 0
`less +? cd .bash_history` в моей системе показывает последнее появление` cd` в моей истории bash. Возможно, у вас есть переменная окружения `LESS`, которая переопределяет то, что я ожидаю? davidmneedham 6 лет назад 0
Это ничего не делает на моем. `$ LESS` не установлено. ultracrepidarian 6 лет назад 0
Понял. Возможно, это связано с расширением bash. Работает, когда команда в кавычках: `less + '? Cd' .bash_history`. ultracrepidarian 6 лет назад 0