less는 항상 대소 문자를 구분하지 않습니다


21

대소 문자를 구분하지 않는 검색을 사용하는 방법을 찾으려고하면 serverfaultless 에서 찾았습니다 .

그것은 내 질문에 완벽하게 대답하는 것 같습니다. 문제는 여기서와 같이 작동하지 않는 것입니다 (openSUSE 13.1; 적은 458).

에일리어싱 lessless -WiNS받았지만 변경했습니다. 그러나 그것을 호출해도 command less file아무것도 바뀌지 않습니다. 커맨드 라인에 더 이상 옵션 ps이 없다는 것을 확인했습니다 -i.

대답에 따르면 less도움말 (누르기 h) -i에서 내에서도 사용할 수 있다고 말합니다 less. 한 번 사용 less하면 대소 문자를 구분하지 않는 검색으로 변경되었다고 알려줍니다 (정확합니다 : 아무것도 변경되지 않음). 두 번 사용하면 less대소 문자를 구분하여 검색했다고 알려줍니다. 그리고 맞습니다. 그러면 처음부터 정상적으로 작동합니다. -i그러나 명령 행에 두 번 주는 것은 작동하지 않습니다.

무슨 일이야?


1
GNU는 저에게 그렇게 작동하지 않습니다 (즉, 기본적으로 대소 문자를 구분합니다). 별명이 지정되어 있지 않습니까? ps이를 확인하기 위해 어떤 옵션을 사용 하고 있습니까?
goldilocks

1
흠. 이것을 눈치 채지 못했지만 당신은 절대적으로 맞습니다. FOO를 검색하면 찾지 만 & FOOfoo찾습니다 . 심지어와 와 . fooFOO-i-WiNS
slm

@goldilocks ps내가 command less옵션을 얻지 못 -WNS했으므로 / ps숨기기 에 문제 가 아니라고 확신합니다 . 여기에 개입 할 수있는 구성 파일의 가능성조차없는 것 같습니다. -i-Iless
Hauke ​​Laging

@slm "-i로도" -i는 정확히 그렇게해야하기 때문에 재미 있다. 흥미로운 질문은 : 당신의 적은 일치 하는가 FOO에 대한 foo 없이 -i ?
Hauke ​​Laging

아니, 다른 방식으로 작동합니다. FOO일치 FOO합니다. 나에게 벌레처럼 보인다.
slm

답변:


32

명령 줄 에서이 기능을 활성화하는 방법을 모르겠지만 내부에있을 때 명령을 less제공하여 원하는 동작을 토글 할 수 있습니다 .-iless

토글 -i

      ss # 1        ss # 2

검색 /blah/BLAH

      ss # 3       ss # 4

찾고 /Blah

      ss # 5

으로 검색을 접미사로하여 요청시이 모드를 소환 할 수도 있습니다 -i.

less prompt> /search string/-i

참고 문헌


그것은 나에게도 효과가 있지만 두 번 입력해야합니다. openSUSE에 대한 버그 보고서를 작성한다고 생각합니다.
Hauke ​​Laging

@HaukeLaging-종료하고 다시 들어 오면 기본값으로 유지되는 것 같습니다. 해당 동작을 확인할 수 있습니까?
slm

아니요,하지만 흥미로운 사실을 발견했습니다 (이 "버그"와 관련이 없음) : -i검색 후에도 사용할 수 있습니다 . 강조 표시가 변경된 후 (아직 활성화 된 경우)
Hauke ​​Laging

@ HaukeLaging-아 그래 그거야. 따라서 다른 도구와 비교할 때 표기법은 약간 중요합니다. /search string/-i.
slm

1
접미사가 작동하지 않는 것 같습니다 less 487 (GNU regular expressions)(우분투 18.04부터)
Ruslan

5

매뉴얼 (my less, version 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.

less의 다른 버전은 -i에 대한 해석이 다를 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.