Linux에서 look 명령을 사용하는 방법

Linux look 명령은 파일을 통해 경주하고 특정 단어나 구로 시작하는 모든 행을 나열합니다. 하지만 조심해! 다른 Linux 배포판에서 다르게 작동합니다. 이 튜토리얼은 그것을 사용하는 방법을 보여줄 것입니다.

Ubuntu의 모양 명령은 다르게 작동합니다.

간단하지만 유용한 명령의 경우 이 기사를 조사할 때 look이 확실히 도움이 되었습니다. 호환성과 문서화라는 두 가지 문제가 있었습니다.

이 기사는 Ubuntu, Fedora 및 Manjaro를 사용하여 확인되었습니다. 각각의 배포본에 모양이 번들로 제공되어 정말 좋았습니다. 문제는 행동이 세 사람 모두에서 동일하지 않았다는 것입니다. 우분투 버전은 매우 달랐습니다. 에 따르면 우분투 맨페이지, 동작은 동일해야 합니다.

나는 결국 그것을 알아 냈습니다. 외모는 전통적으로 사용 이진 검색, 우분투 모양은 선형 검색. Bionic Beaver(18.04), Cosmic Cuttlefish(18.10) 및 Disco Dingo(19.04)에 대한 온라인 Ubuntu 매뉴얼 페이지는 모두 Ubuntu 버전이 바이너리 검색을 사용한다고 말하지만 실제로는 그렇지 않습니다.

로컬 Ubuntu 매뉴얼 페이지를 보면 선형 검색을 사용한다고 명확하게 명시되어 있습니다. 바이너리 검색을 사용하도록 강제하는 명령줄 옵션이 있습니다. 다른 배포판의 두 버전 모두 검색 방법 중에서 선택할 수 있는 옵션이 없습니다.

man look

매뉴얼 페이지를 아래로 스크롤하면 이진 검색 대신 선형을 사용하여 이 버전의 모양을 설명하는 섹션이 표시됩니다.

이야기의 교훈은 먼저 로컬 매뉴얼 페이지를 확인하는 것입니다.

선형 검색 대 이진 검색

이진 탐색 방법은 선형 탐색보다 빠르고 효율적입니다. 큰 파일로 작업하면 이를 매우 명확하게 알 수 있습니다. 이진 검색의 단점은 파일을 정렬해야 한다는 것입니다. 파일을 정렬하지 않으려면 복사본을 정렬한 다음 look과 함께 사용하세요.

  iPhone에서 위젯을 추가, 사용 및 사용자화하는 방법

이 기사의 다른 곳에서 이것을 시연할 것입니다. Fedora, Manjaro 및 필자는 나머지 Linux 세계의 대부분을 예상하고 있으므로 파일의 정렬된 복사본을 만들고 작업해야 합니다.

단어 설치

look은 선택한 모든 텍스트 파일에서 작동하거나 로컬 사전 파일 “단어”와 작동할 수 있습니다.

Manjaro에서는 “words” 파일을 설치해야 합니다. 다음 명령을 사용하십시오.

sudo pacman -Syu words

외모 사용

이 기사에서는 텍스트 파일로 작업합니다. 에드워드 리어 시 “Jumplies”.

다음 명령으로 내용을 살펴보겠습니다.

less the-jumblies.txt

다음은 시의 첫 부분입니다. 우리는 Ubuntu를 사용하고 있으므로 파일이 정렬되지 않은 상태로 유지됩니다. Fedora와 Manjaro의 경우 이 문서의 뒷부분에서 다룰 파일의 정렬된 복사본으로 작업합니다.

“그들”이라는 단어로 시작하는 줄을 찾으면 Jumblies가 한 일 중 일부를 찾을 수 있습니다.

look They the-jumblies.txt

look은 다음 줄을 나열하여 응답합니다.

에서 출력

대소문자 무시

대문자와 소문자의 차이를 무시하도록 하려면 -f(대소문자 무시) 옵션을 사용합니다. 다시 “그들”을 검색어로 사용했는데 이번에는 소문자입니다.

look -f they the-jumblies.txt

이번에는 결과에 추가 줄이 포함됩니다.

에서 출력

“THEY”로 시작하는 줄은 모두 대문자로 되어 있고 검색어 “They”와 일치하지 않기 때문에 마지막 결과 세트에서 누락되었습니다.

대소문자를 무시하면 결과에 포함할 수 있습니다.

정렬된 파일과 함께 look 사용

Linux 배포판에 이진 검색을 사용하는 기존 동작을 따르는 버전이 있는 경우 파일을 정렬하거나 정렬된 복사본으로 작업해야 합니다.

명령을 반복하여 “그들”을 검색해 보겠습니다. 이번에는 Manjaro에서 검색합니다.

보시다시피 결과가 반환되지 않았습니다. 그러나 우리는 시에서 “그들”이라는 단어로 시작하는 줄이 있다는 것을 압니다.

파일의 정렬된 복사본을 만들어 보겠습니다. look과 함께 -f(대소문자 무시) 또는 -d(영숫자 문자 및 공백만) 옵션을 사용하려는 경우 파일을 정렬할 때 이 옵션을 사용해야 합니다.

-o(출력) 옵션을 사용하면 정렬된 행을 추가해야 하는 파일의 이름을 지정할 수 있습니다. 이 예에서는 “sorted.txt”입니다.

sort -f -d the-jumblies.txt -o sorted.txt

sorted.txt 파일에서 look을 사용한 다음 -f 및 -d 옵션을 사용하겠습니다.

  Gmail에서 부재 중 메시지를 설정하는 방법

이제 우리는 우리가 기대했던 결과를 얻었습니다.

공백과 영숫자만 고려

외모가 아닌 것을 무시하려면 영숫자 또는 공백인 경우 -d(영숫자) 옵션을 사용합니다.

“오”로 시작하는 단어가 있는지 봅시다.

look -f oh the-jumblies.txt

look에 의해 반환되는 결과가 없습니다.

다시 시도하고 look에게 영숫자 문자와 공백 이외의 다른 것은 무시하도록 지시해 보겠습니다. 즉, 구두점과 같은 문자 및 기호는 무시됩니다.

look -f -d oh the-jumblies.txt

이번에는 결과가 나옵니다. 따옴표와 느낌표가 검색을 혼동시키기 때문에 이전에는 이 줄을 찾지 못했습니다.

에서 출력

종료 문자 지정

특정 문자를 종료 문자로 사용하도록 look을 말할 수 있습니다. 일반적으로 공백과 줄 끝이 종료 문자로 사용됩니다.

-t(문자 종료) 옵션을 사용하면 사용하려는 문자를 지정할 수 있습니다. 이 예에서는 아포스트로피 문자를 사용합니다. 문자열을 열지 않는다는 것을 look이 알 수 있도록 백슬래시로 인용해야 합니다.

또한 검색어에 공백이 포함되어 있기 때문에 검색어를 인용하고 있습니다. 우리는 두 단어를 찾고 있습니다.

look -f -t ' "they call" the-jumblies.txt

결과는 검색어와 일치하며 종료 문자로 사용한 아포스트로피로 종료됩니다.

파일 없이 보기 사용

명령줄에 파일 이름을 제공하지 않으면 look이 다음을 사용합니다. 단어 파일.

명령:

다음 결과를 제공합니다.

파일에서 “circle”이라는 단어로 시작하는 모든 단어입니다.

더 이상 보지

보기만 하면 됩니다.

여러 Linux 배포판에 서로 다른 동작이 있다는 것을 알고 나면 버전이 이진 검색을 사용하는지 선형 검색을 사용하는지 확인하면 매우 쉽습니다.