меньше всегда учитывает регистр

21

Пытаясь выяснить, как использовать поиск без учета регистра, lessя нашел это на serverfault .

Это, кажется, прекрасно отвечает на мой вопрос. Проблема в том, что здесь это не работает (openSUSE 13.1; меньше 458).

Я совмещенный lessс , less -WiNSно я изменил это. Но даже называя это так, command less fileничего не изменится. Я проверил, psчто -iв командной строке больше нет опций.

Поскольку ответ говорит, что lessпомощь (нажатие h) заявляет, что я могу использовать и -iвнутри less. Если я использую это однажды, то скажу, что lessон изменился на поиск без учета регистра (это вроде как правильно: ничего не меняется). Если я использую его дважды, то скажу, что lessон превратился в поиск с учетом регистра. И правильно, тогда все работает как надо с самого начала. Давать -iдважды в командной строке не работает, хотя.

Что здесь?

Хауке Лагинг
источник
1
GNU less для меня не работает (то есть по умолчанию он чувствителен к регистру). Вы уверены, что это не псевдоним? Какие опции вы используете, psчтобы проверить это?
Златовласка
1
Хм. Никогда этого не замечал, но ты абсолютно прав. Поиск FOO находит просто FOO, но поиск fooнаходит foo& FOO. Даже с -iи -WiNS.
СЛМ
@goldilocks С помощью psя получаю либо command lessопции no ( ), либо -WNSя уверен, что это не psпроблема скрывать -i/ -I. lessкажется, даже нет возможности файла конфигурации, который может вмешаться здесь.
Хауке Лагинг
@slm "даже с -i" довольно забавно, потому что -iдолжно делать именно это. Интересный вопрос: Есть ли ваш меньше матч FOOза foo без -i ?
Хауке Лагинг
Нет, это работает по-другому. FOOтолько совпадения FOO. Похоже, ошибка для меня.
СЛМ

Ответы:

32

Я не уверен, как включить это из командной строки, но когда вы внутри, lessвы можете переключать желаемое поведение, передавая -iкоманду less.

переключение -i

      сс # 1        сс # 2

в поисках /blahи/BLAH

      сс # 3       сс # 4

в поисках /Blah

      сс # 5

Очевидно, вы также можете вызвать этот режим по требованию, добавив суффикс поиска к -i.

пример

less prompt> /search string/-i

Ссылки

SLM
источник
Это тоже работает для меня, но я должен ввести это дважды. Я предполагаю, что напишу отчет об ошибке для openSUSE.
Хауке Лагинг
@HaukeLaging - По-видимому, он останется по умолчанию, если вы выйдете и вернетесь назад, можете ли вы подтвердить такое поведение?
SLM
Нет, но я обнаружил кое-что интересное (не связанное с этой «ошибкой»): вы можете использовать -iдаже после поиска. Затем подсветка меняется (если она еще активна).
Хауке Лагинг
@HaukeLaging - ах да, вот и все. Таким образом, обозначения немного скрупулезны по сравнению с другими инструментами. /search string/-i,
SLM
1
Суффиксы не работают less 487 (GNU regular expressions)(из Ubuntu 18.04)
Руслан
5

В руководстве (для моей lessверсии 444) написано:

      Options are also taken from the environment variable "LESS".  For exam‐
   ple, to avoid typing "less -options ..." each time less is invoked, you
   might tell csh:

   setenv LESS "-options"

   or if you use sh:

   LESS="-options"; export LESS

   On  MS-DOS,  you don't need the quotes, but you should replace any per‐
   cent signs in the options string by double percent signs.

   The environment variable is parsed before the command line, so  command
   line  options  override  the  LESS  environment variable.
       On  MS-DOS,  you don't need the quotes, but you should replace any per‐
   cent signs in the options string by double percent signs.

   The environment variable is parsed before the command line, so  command
   line  options  override  the  LESS  environment variable.  If an option
   appears in the LESS variable, it can be reset to its default  value  on
   the command line by beginning the command line option with "-+".

Итак, я бы проверил, может ли переменная окружения LESSгде-то быть установлена, в вашей оболочке, возможно, «точечные файлы». Кроме того, less -+iследует сбросить значение -iпо умолчанию (с учетом регистра). Если это возвращает чувствительность к регистру для вас, тогда вы можете просто alias less=less -+i, может быть, вместе с alias lessi=less -i.

Омид
источник
0

Вы можете начать меньше и игнорировать регистр, передав опцию -i. Это игнорирует регистр, если строка поиска не имеет верхнего регистра. Вот краткое описание на странице справки Ubuntu :

   -i or --ignore-case
          Causes searches to ignore case; that is, uppercase  and  lowercase  are  considered
          identical.   This  option  is ignored if any uppercase letters appear in the search
          pattern; in other words, if a pattern contains uppercase letters, then that  search
          does not ignore case.

   -I or --IGNORE-CASE
          Like -i, but searches ignore case even if the pattern contains uppercase letters.

Другие версии менее могут отличаться в своих интерпретациях -i.

DDay
источник