Pesquise um texto em arquivos que tenham uma pasta específica no caminho e exiba a linha correspondente e as permissões de arquivo

0

Encontre todos os arquivos * .config, que possuem uma pasta específica (por exemplo, config) no caminho e que possuem um texto específico (por exemplo, hostname). Em seguida, exiba as linhas correspondentes junto com as permissões de arquivo.

Neste momento, o comando abaixo me fornece todo o arquivo de configuração que tem a pasta 'config' no caminho e tem o texto 'hostname' junto com a permissão do arquivo.

ls -la 'find / -type f -name "*.config" -exec grep -li 'hostname' {} + | grep config'

exemplo de saída

-rw-r--r-- 1 user users  2240 Jan 17  2014 /home/config/1.config
-rw-r--r-- 1 user users  2146 Aug  2  2013 /home/test/config/abc.config

Esse arquivo tem o texto 'hostname' neles. Agora eu também quero ver a linha onde aconteceu a correspondência 'hostname'. Existe uma maneira de fazer isso, sem scripts de bash?

    
por SleepyLord 06.06.2017 / 12:09

1 resposta

3

Use as opções de comando find :

find -type f -path "*/config/*.config" -exec grep 'hostname' {} \;  -ls
  • -path <pattern> - O nome do arquivo corresponde ao padrão de shell <pattern>

  • -ls - lista o arquivo atual no formato ls -dils na saída padrão

por 06.06.2017 / 12:32

Tags