grep -c string a*
Como posso encontrar uma string em arquivos em um diretório, usando nomes de arquivos que começam com a letra a.
Eu também quero obter o número de ocorrências dessa string do grep
I executado.
Eu tentei isso
cat * | grep -c
string, mas pesquisa todos os arquivos. Eu só quero pesquisar arquivos que começam com letra a
grep -c string a*
grep -c string a*
método alternativo que lhe dá o poder e a flexibilidade do comando ' encontrar ':
encontre. -name "a *" | xargs grep -c string
grep -c string a *
Como os outros disseram, sua solução básica é:
grep -c string a*
Você disse que queria classificar os arquivos e listar informações extras.
Você não pode obter tudo isso com o grep, mas faço parte dele se não estiver preocupado com a eficiência e os arquivos não tiverem espaços ou outros caracteres estranhos:
ls -tr 'grep -l string a*' | while read file; do
grep -c string "$file" | tr '\n' '\t'
ls -l "$file"
done
O primeiro grep nos backticks procura arquivos correspondentes, listando apenas os nomes. O primeiro ls, então, classifica os por modificação em ordem inversa. Em seguida, pesquisamos cada arquivo pela segunda vez para contar as ocorrências e prefixamos a contagem na listagem padrão "ls -l".
Isso será lento; se você realmente precisa de uma versão mais rápida, provavelmente você pode hackear uma em uma linguagem de script.