J'essaie de faire une boucle sur un fichier qui a un nombre de lignes avec plusieurs colonnes (champs) avec des conditions.Boucle à travers les lignes et plusieurs colonnes dans bash
Voici ce qu'un exemple de fichier (file.txt
) ressemble à:
aaa bbb ccc
ddd kkk
fff ggg hhh lll
ooo
sss
... etc ...
Je veux écrire un script bash qui boucle sur la première ligne du premier champ et si le nom existe alors continue à la deuxième rangée. Si le nom de la première ligne du premier champ n'existe pas, testez le deuxième champ (dans ce cas, testez le nom "bbb") et ainsi de suite jusqu'au quatrième. J'ai un nombre variable de champs avec un maximum de quatre (4) champs et un minimum d'un champ (colonne) pour une ligne donnée.
for i in cat file.txt; do
echo $i
if [ -e $i ]; then
echo "name exists"
else
echo "name does not exist"
fi
done
Évidemment, le script ci-dessus teste les lignes et les colonnes. Mais je voulais aussi faire une boucle vers les deuxième, troisième et quatrième champs si le premier champ n'existe pas et si le deuxième champ n'existe pas, tester le troisième champ et le quatrième.
Interroger la motivation OP ne répond pas à la question. – hakre
L'interprétation de la requête, la proposition d'une approche (ligne par ligne au lieu de mot par mot), puis la fourniture d'une réponse correcte correctement, comptent comme réponse à la question. – AndrewF