#1 Le 10/05/2010, à 05: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
EDIT : merci de vos reponses
Dernière modification par Hizoka (Le 18/12/2011, à 01:38)
KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github
Hors ligne
#2 Le 10/05/2010, à 07:45
- FRUiT
Re : [resolu] liste et modification de l'IFS
IFS='|' c'est pas bon ?
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, à 08:02)
Neon Suite by FRUiT (kde4.6) [url]http://[Merci de relire les règles]/yzm7cee[/url]
"Pour la carotte, le lapin est la plus parfaite incarnation du mal" (R. Sheckley)
clean
Hors ligne
#3 Le 10/05/2010, à 11: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, à 11:18)
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne