if grep -q 'password = "[^"]' filename; then
echo "password exists"
else
echo "no password"
fi
Digamos que eu tenha um arquivo
batman;
robin;
superman;
password = "";
wonderwoman
green lantern
se eu quiser verificar se há um password
presente, ou seja, algo foi inserido no ""
. aqui está um exemplo para isso
ironman;
hulk;
spiderman;
password = "tonyStark";
black widow
hawkeye
Como eu verificaria se o arquivo tem uma senha entre o ""
?
Isso é o que eu tenho até agora
x=$(grep -icE "password=\"[a-zA-Z0-9]\"" file.txt)
if [ x -gt 0 ]; then
echo "There is a password"
fi
Eu inverteria grep "password=" "".
Se houver algo na senha diferente de vazio, o nome do arquivo e as linhas serão exibidos.
Você perdeu os espaços em branco. Também negue a resposta para torná-lo mais confiável
x=$(grep -icE "password[ ]*=[ ]*\"\"" file.txt)
if [ $x -ne 1 ]; then
echo "There is a password"
fi
Através do awk e do grep,
awk -v var=$(grep -oP '(?<=^password = \")[^"]*' file) 'BEGIN{if (var=="") {print "There is no password"} else {print "There is a password"}}'
Você precisa executar o comando awk acima no diretório onde seu arquivo de entrada está localizado.
c=$(grep -iE "password" file.txt | cut -d "\"" -f2)
if [ -z "$c" ]; then
echo "no password"
fi
isso é bom? A saída é exatamente o que eu esperava.