grep
+ cut
approach:
if grep -qwf <(cut -d, -f1 user_input) database; then
echo "This username is already in use, try again!"
else
echo "Successfully registered!"
fi
O primeiro campo é o nome de usuário, o segundo é a senha e o último indica a ação (login / registro)
Arquivo 1: entrada do usuário
hello,world,register
Arquivo 2: banco de dados de texto simples
admin,123
user,321
foo,bar
Como posso comparar a entrada do usuário com o banco de dados para verificar se o nome de usuário já existe?
Eu tentei o código a seguir, mas não está funcionando:
if cut -d "," -f1 user_input | grep -wf user_input database; then
echo "This username is already in use, try again!"
else
echo "Successfully registered!"
fi
PS: i need a solution without awk,sed or find, just grep and cut
Uma solução que usa apenas bash
incorporado e grep
.
while IFS=',' read -r username
do
if grep -wq $username database
then
echo "This username is already in use, try again!"
else
echo "Successfully registered!"
fi
done < user_input
Eu fiz usando o comando cut, para loop e se a condição
#!/bin/bash
i='cut -d "," -f1 user_input.txt'
#echo $i
for j in 'cut -d "," -f1 database.txt'
do
if [[ $i == $j ]]
then
echo $j "already exsists"
else
echo $j "doesn't exsists"
fi
done
Tags grep shell-script cut