Como procurar por ambos dentro de filename (find) e file (grep) usando uma única linha de código?

3

Tenho certeza que fiz isso no passado (e que uma resposta está em algum lugar), mas não me lembro agora.

Estou procurando um one-liner para pesquisar (e retornar / eco) as correspondências no nome do arquivo e no arquivo .

Provavelmente, o mais fácil seria executar grep e find separadamente um após o outro; mas eu prefiro um one-liner ...

... a menos que fosse possível com um ponto-e-vírgula (?) ou outro para executar essas ferramentas sequencialmente.

Eu não acho que a solução que estou procurando envolveria a tubulação | porque, para usar a teoria dos conjuntos , estou interessado na união dos dois conjuntos A e B ( A ∪ B ), em vez da intersecção (A ∩ B).

    
por nutty about natty 31.03.2013 / 20:32

2 respostas

2

Você está certo - você pode usar o ponto-e-vírgula para executar a lista de comandos sequencialmente:

$ find . -name 'test'; grep test *

Você também pode agrupá-lo para ser executado como um único comando: link

    
por Nykakin 03.04.2013 / 12:12
1

Tente isto no seu terminal ( CTRL + ALT + T )

find <here your starting string > -type f -exec grep -l <here place the part of file name> {} \;

Descrição do comando acima:

find snow -type f - > Encontre todos os arquivos a partir da neve. find .... -exec - > para cada item encontrado, faça o seguinte comando. Onde você normalmente coloca o nome do arquivo em seu comando, coloque {}. grep -l "String" something - > retorna o nome do arquivo se a string "String" for encontrada no arquivo.

Crédito: dbasupport.com

    
por rɑːdʒɑ 01.04.2013 / 17:35