Como usar o comando look no Linux

Terminal Linux rodando em um ambiente de desktop com tema Ubuntu.
Fatmawati Achmad Zaenuri / Shutterstock

O lookcomando do Linux percorre um arquivo e lista todas as linhas que começam com uma palavra ou frase específica. Mas cuidado! Ele se comporta de maneira diferente em diferentes distribuições Linux. Este tutorial mostrará como usá-lo.

O comando do visual do Ubuntu se comporta de maneira diferente

Para um comando simples, mas útil, lookcertamente me deixou confuso quando estava pesquisando este artigo. Havia dois problemas: compatibilidade e documentação.

Este artigo foi verificado usando Ubuntu, Fedora e Manjaro. lookfoi fornecido com cada uma dessas distribuições, o que foi ótimo. O problema era que o comportamento não era o mesmo nos três. A versão do Ubuntu era muito diferente. De acordo com o Ubuntu Manpages , o comportamento deve ser o mesmo.

Eu finalmente descobri. look tradicionalmente usa uma pesquisa binária , enquanto o Ubuntu lookusa uma pesquisa linear . As man pages online do Ubuntu para Bionic Beaver (18.04), Cosmic Cuttlefish (18.10) e Disco Dingo (19.04) dizem que a versão Ubuntu usa uma pesquisa binária, o que não é o caso.

Se dermos uma olhada na página de manual local do Ubuntu, vemos que ela afirma claramente que lookusa uma pesquisa linear. Existe uma opção de linha de comando para forçá-lo a usar uma pesquisa binária. Nenhuma das versões nas outras distribuições tem a opção de escolher entre os métodos de pesquisa.

homem olha

"homem olhar" em uma janela de terminal.

Percorrendo a página do manual, vemos a seção que descreve esta versão do   lookuso de uma pesquisa linear em vez de binária.

Recomendado:  Como desativar as notificações de assistência de foco irritante do Windows 10

O Ubuntu olha a página do manual em uma janela de terminal.

A moral da história é verificar as páginas de manual locais primeiro.

Pesquisa linear versus pesquisa binária

O método de pesquisa binária é mais rápido e eficiente do que uma pesquisa linear. Trabalhar com arquivos grandes torna isso muito aparente. A desvantagem da pesquisa binária é que seu arquivo deve ser classificado. Se você não quiser classificar seu arquivo, classifique uma cópia dele e use-a com look.

Vamos demonstrar isso em outro lugar neste artigo. Esteja ciente de que no Fedora, Manjaro, e espero que a maior parte do resto do mundo Linux, você precisará criar uma cópia ordenada do seu arquivo e trabalhar com isso.

Instalando palavras

look pode funcionar com qualquer arquivo de texto de sua escolha ou com o arquivo de dicionário local “palavras”.

No Manjaro você precisa instalar o arquivo “palavras”. Use este comando:

sudo pacman -Syu palavras

"sudo pacman -Syu words" em uma janela de terminal.

Usando look

Para este artigo, trabalharemos com um arquivo de texto do poema de Edward Lear “The Jumblies”.

Vejamos seu conteúdo com este comando:

menos the-jumblies.txt

"less the-jumblies.txt" em uma janela de terminal.

Aqui está a primeira parte do poema. Observe que estamos usando o Ubuntu, então o arquivo permanece sem classificação. Para Fedora e Manjaro, trabalharíamos com uma cópia ordenada do arquivo, que abordaremos posteriormente neste artigo.

"The Jumblies" em menos em uma janela de terminal.

Se procurarmos por linhas que começam com a palavra “Eles”, descobriremos um pouco do que os Jumblies fizeram.

olhe para eles o-jumblies.txt

"look They the-jumblies.txt" em uma janela de terminal.

look responde listando estas linhas:

Saída de "look They the-jumblies.txt" em uma janela de terminal.

Ignorando maiúsculas e minúsculas

Para lookignorar diferenças entre maiúsculas e minúsculas, use a opção -f(ignorar maiúsculas e minúsculas ). Usamos “they” como a palavra de pesquisa novamente, mas desta vez, está em letras minúsculas.

olhe-se eles o-jumblies.txt

olhe-se eles o-jumblies.txt em uma janela de terminal.

Desta vez, os resultados incluem uma linha extra.

Recomendado:  O novo teclado de hardware de código aberto do System76 é enorme

Saída de "look -f they the-jumblies.txt" em uma janela de terminal.

A linha que começa com “ELES” foi perdida no último conjunto de resultados porque está em letras maiúsculas e não corresponde ao nosso termo de pesquisa, “Eles”.

Ignorar maiúsculas e minúsculas permite lookincluí-lo nos resultados.

Usando aparência com um arquivo classificado

Se sua distribuição Linux tiver uma versão lookque segue o comportamento tradicional de usar uma pesquisa binária, você deve classificar seu arquivo ou trabalhar com uma cópia classificada dele.

Vamos repetir o comando para procurar “Eles”, mas desta vez em Manjaro.

Olhe para eles o-jumblies.txt em uma janela de terminal.

Como você pode ver, nenhum resultado foi retornado. Mas sabemos que há versos no poema que começam com a palavra “Eles”.

Vamos fazer uma cópia ordenada do arquivo. Se for usar as opções -f(ignorar maiúsculas e minúsculas) ou -d(caracteres alfanuméricos e espaços apenas) com look, você deve usá-los ao classificar o arquivo.

A -oopção (saída) permite que você especifique o nome do arquivo ao qual as linhas classificadas devem ser adicionadas. Neste exemplo, é “ordenado.txt”.

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

sort -f -d the-jumblies.txt -o Sort.txt em uma janela de terminal.

Vamos usar lookno arquivo Sort.txt e, em seguida, usar as opções -fe -d.

sort -f -d the-jumblies.txt -o Sort.txt em uma janela de terminal.

Agora, obtemos os resultados que esperávamos.

Considere apenas espaços e alfanuméricos

Para fazer com que a aparência ignore qualquer coisa que não seja um caractere alfanumérico ou um espaço, use a -dopção (alfanumérico).

Vamos ver se há alguma palavra que comece com “Oh”.

look -f oh the-jumblies.txt

veja -f oh the-jumblies.txt em uma janela de terminal.

Nenhum resultado é retornado por look.

Vamos tentar novamente e dizer ao look para ignorar qualquer coisa que não seja caracteres alfanuméricos e espaços. Isso significa que caracteres e símbolos, como pontuação, serão ignorados.

look -f -d oh the-jumblies.txt

look -f -d oh the-jumblies.txt em uma janela de terminal.

Desta vez, obtemos um resultado. Não encontramos essa linha antes porque as aspas e o ponto de exclamação confundiram a pesquisa.

Recomendado:  Qual é a diferença entre NTSC e PAL?

Saída de "look -f -d oh the-jumblies.txt" em uma janela de terminal.

Especificando o caractere final

Você pode dizer lookpara usar um caractere específico como caractere de terminação. Normalmente, espaços e finais de linhas são usados ​​como caractere de terminação.

A opção -t(encerrar caractere) nos permite especificar o caractere que gostaríamos de usar. Neste exemplo, vamos usar o caractere apóstrofo. Precisamos citá-lo com uma barra invertida para sabermos que looknão estamos abrindo uma string.

Também citamos o termo de pesquisa porque inclui um espaço. Estamos procurando por duas palavras.

look -f -t \ '"eles chamam de" the-jumblies.txt

look -f -t \ '"eles chamam" the-jumblies.txt em uma janela de terminal.

Os resultados correspondem ao termo de pesquisa, terminado pelo apóstrofo que usamos como caractere de terminação.

A saída de "look -f -t \ '" eles chamam de "the-jumblies.txt" em uma janela de terminal.

Usando o look sem um arquivo

Se você não fornecer um nome de arquivo na linha de comando, use o arquivo de palavras .

O comando:

"olhe o círculo" em uma janela de terminal.

dá estes resultados:

"olhe o círculo" resulta em uma janela de terminal.

Essas são todas as palavras do arquivo que começam com a palavra “círculo”.

não procure mais

Isso é tudo que há para fazer look.

É muito fácil, uma vez que você sabe que existem diferentes comportamentos em diferentes distribuições do Linux, e você concluiu se sua versão usa uma pesquisa binária ou linear.