Bonjour,
La boite de dialogue de sélection de fichiers de zenity me renvoie une sortie de ce format:
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 : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 echo "$fichiers" /home/debian/lance-vnc-ssh|/home/debian/materiel.html|/home/debian/Menu.desktop
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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
Ce qui rend ma boucle inopérante.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 echo "$fichiers" /home/debian/materiel.html /home/debian/Menu.desktop
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.
Partager