Contenu | Rechercher | Menus

Annonce

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

À propos de l'équipe du forum.

#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 smile

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 ? 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, à 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