Contenu | Rechercher | Menus

Annonce

Ubuntu-fr.org recrute toujours de nouveaux modérateurs, avec de l'expérience.

Ubuntu 16.04 LTS
Réservez vos DVD et clé USB Ubuntu-fr (premières livraisons mi-mai)

Si vous avez des soucis pour rester connecté, déconnectez vous et reconnectez vous depuis ce lien en cochant le case
Me connecter automatiquement lors de mes prochaines visites.

M.A.J. en cours du forum possibilité de bug, nous faisons le maximum pour les résoudre au plus vite

#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