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
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).
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
Tags command-line grep find