Contenu | Rechercher | Menus

Annonce

Si vous rencontrez des soucis à rester connecté sur le forum (ou si vous avez perdu votre mot de passe) déconnectez-vous et reconnectez-vous depuis cette page, en cochant la case "Me connecter automatiquement lors de mes prochaines visites".
Test de l'ISO d'Ubuntu francophone : nous avons besoin de testeurs pour la version francophone d'Ubuntu 14.04. Liens et informations ici.

Attention, une faille de sécurité dans bash a récemment été rapportée, il est recommandé de mettre à jour son système (plus de détails)

#1 Le 10/05/2010, à 06:13

Hizoka

[resolu] liste et modification de l'IFS

Bonjour,

Soit une variable :

track="video-x-generic | Video | 1 | 544x304 | V_MS/VFW/FOURCC, XVID | Inconnu"

que je voudrais transformer en liste avec pour élément séparateur " | ", je modifie donc l'IFS :

old_ifs=${IFS}
IFS=' | '
#j'ai aussi essayé avec IFS=$' | ', quelle est la différence ?

je crée la liste :

track=(${track})

et maintenant que je teste :

echo ${track[0]} =>video-x-generic
echo ${track[1]} => Video
echo ${track[2]} => 1
echo ${track[3]} => 544x304

# et là, c'est le drame...
echo ${track[4]} => V_MS/VFW/FOURCC,
echo ${track[5]} => XVID
echo ${track[6]} => Inconnu

# Remise en place de l'IFS
IFS=${old_ifs}

je ne pige pas pourquoi il me coupe la 5e info...

quelle peut être la raison ? y a-t-il moyen de contourner ce problème ?

tout en sachant que je peux avoir des espaces dans différentes sections...

merci smile

EDIT : merci de vos reponses

Dernière modification par Hizoka (Le 18/12/2011, à 02:38)

Hors ligne

#2 Le 10/05/2010, à 08:45

FRUiT

Re : [resolu] liste et modification de l'IFS

IFS='|' c'est pas bon ? big_smile

A mon humble avis IFS=' | ' signifie à peu près "couper après un | ou bien un espace"

Eventuellement tu auras à traiter les éléments de ton tableau pour enlever des espaces de début et de fin de contenu de variable.

Dernière modification par FRUiT (Le 10/05/2010, à 09:02)


Neon Suite by FRUiT (kde4.6) http://tinyurl.com/yzm7cee
"Pour la carotte, le lapin est la plus parfaite incarnation du mal" (R. Sheckley)
clean

Hors ligne

#3 Le 10/05/2010, à 12:17

Watael

Re : [resolu] liste et modification de l'IFS

track="video-x-generic | Video | 1 | 544x304 | V_MS/VFW/FOURCC, XVID | Inconnu"

IFS=$'\n' read -d. -a Tracks <<<"${track// \| /$'\n'}."

printf '%s\n' "${Tracks[4]}"
V_MS/VFW/FOURCC, XVID

Dernière modification par Watael (Le 10/05/2010, à 12:18)


eval, c'est mal.

Hors ligne

Haut de page ↑