J'essaie de lire les valeurs d'un fichier et de les stocker dans 3 variables, puis de les faire écho, mais cela me donne une sortie vide
le fichier de liste contient smith:P@assWord:IP
commandes :
user1= cat list| awk -F ':' '{print $1;}'
pass1= cat list| awk -F ':' '{print $2;}'
IP1= cat list| awk -F ':' '{print $3;}'
echo $user1,$pass1, $IP1
Mais je reçois une sortie vide de echo.
Sortie attendue : smith,P@assWord,IP
Merci d'avance.
Vous devez exécuter des commandes et affecter le résultat des commandes aux variables, mais votre syntaxe ne le fait pas.
Utilisez plutôt celui-ci :
user1=$(cat list| awk -F':' '{print $1}')
pass1=$(cat list| awk -F':' '{print $2}')
IP1=$(cat list| awk -F':' '{print $3}')
echo $user1,$pass1,$IP1
L'essentiel est d'utiliser la substitution de commande pour exécuter la commande et affecter son résultat à une variable. Vous pouvez en savoir plus à ce sujet ici : https://www.gnu.org/software/bash/manual/html_node/Command-Substitution.html
Mise à jour : regardez la réponse de Jetchisel car il a fourni un moyen plus efficace de le faire.
Update2 : Comme vous avez mentionné que vous devez lire et imprimer plusieurs lignes, voici le code que vous pouvez utiliser :
while read line;
do echo $line | awk -F':' '{printf "%s,%s,%s\n", $1,$2,$3} ';
done < list
Cet article est collecté sur Internet, veuillez indiquer la source lors de la réimpression.
En cas d'infraction, veuillez [email protected] Supprimer.
laisse moi dire quelques mots