Primeiro , configure um $PATH
adequado (e veja a resposta de Kamil Maciorowski ):
Faça login com usuário adequado (root?) e execute:
echo PATH=$PATH
Adicione a saída no início do seu script
OU você pode adicionar um caminho completo ao comando find
. Se você não sabe onde find
são colocados, execute:
which find
A saída será assim: /usr/bin/find
E você tem um erro dentro do loop :
Você precisa substituir aspas simples por doublequotes (em torno de ${LINE}
), caso contrário, a variável não será interpretada:
echo "find ${PATHS} -type f -name "*.txt" -exec grep -w "${LINE}" {} \; 2>/dev/null | wc -l"
LINES='find ${PATHS} -type f -name "*.txt" -exec grep -w "${LINE}" {} \; 2>/dev/null | wc -l'
Algumas notas:
- Você não precisa de
cat file
, tente usar o loop. Mas use apenaswhile
, nãofor
! Leia Por que você não lê as linhas com "para" e Como posso ler um arquivo (fluxo de dados, variável) linha por linha (e / ou campo a campo)?