Supprimer un champ avec awk
Bonjour,
La boite de dialogue de sélection de fichiers de zenity me renvoie une sortie de ce format:
Code:
1 2
| echo "$fichiers"
/home/debian/lance-vnc-ssh|/home/debian/materiel.html|/home/debian/Menu.desktop |
Comme je ne sais pas a priori le nombre de fichiers qui seront sélectionnés, je fais une boucle me permettant de traiter un à un chacun des fichiers jusqu'à ce qu'il n'y en ait plus:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| # Je vérifie qu'il y a bien au moins un fichier sélectionné
if [ -n "$fichiers" ]
then fini="non"
else fini="oui"
fi
while [ "$fini" = "non" ]; do
fichier=$(echo "$fichiers" | awk -F "|" '{print $1}')
echo "$fichier"
# ici je veux supprimer le 1er champ pour reprendre la boucle avec les champs restants
fichiers=$(echo "$fichiers" | awk -F "|" '{$1="";print}')
if [ -z "$fichiers" ]
then fini="oui"
fi
done |
Mais à la sortie de la commande de suppression de champ, awk supprime bien le 1er champ mais change le caractère séparateur puisqu'en testant la sortie j'obtiens ceci:
Code:
1 2
| echo "$fichiers"
/home/debian/materiel.html /home/debian/Menu.desktop |
Ce qui rend ma boucle inopérante.
Pourquoi awk change-t-il le caractère séparateur de champ ? Comment supprimer le champ proprement sans modifier le caractère séparateur ?
Merci d'avance pour votre éclairage.