localizar com cor

2

Eu usei locate binário para pesquisar algo no meu disco rígido de 1 TB.

Na maioria das vezes, tenho muitos resultados e tenho que ler cada linha para obter exatamente o que estou procurando.

Seria ótimo se o locate pudesse produzir o padrão correspondente com cores (como grep --color)

Existe alguma maneira de fazer isso para o comando locate ?

    
por SHW 09.04.2014 / 10:06

2 respostas

2

A maneira mais fácil é escrever um script de shell simples que combina locate e grep :

Crie um arquivo em algum lugar em seu $ PATH (por exemplo, /usr/local/bin/clocate ) com

#!/bin/sh
locate --regex "$1" | grep --color=auto "$1"

torne-o executável, por exemplo

chmod +x /usr/local/bin/clocate

e use-o como locate . O script aceita apenas um padrão.

Outra forma é usar uma função de shell : se você estiver usando bash como seu shell, poderá adicionar à sua $HOME/.bashrc a seguinte linha:

clocate() { locate --regex  "$1" | grep --color=auto "$1"; }

Você precisa executar novamente o bash ou re-originar seu .bashrc antes de poder usar o novo comando.

Anote a opção --regex para locate . Você precisa escrever .* em vez de * para corresponder a qualquer número de caracteres.

    
por 09.04.2014 / 10:42
0

Isso por dois padrões O primeiro padrão na linha de comando, o segundo quando convidado.

#!/bin/sh
echo "Type the second argument."
read constraint
locate -i "$1" | grep -i $(echo "$constraint") |grep -i --color=auto -e $(echo "$1") -e $(echo "$constraint")
exit
    
por 17.07.2014 / 19:34

Tags