Pages : 1
#1 Le 26/02/2011, à 22:29
- kde4 fan
[Résolu] aide commande ls
salut
comment récupérée les non de fichier afficher par la commande ls
puis les séparer un par un
puis renvoyer dans une variable qui doit incrémenter les non de fichier l'un après l'autre
explication :
au lieu d'avoir tous les non de fichier les un a la suite exemple :(fichier1 fichier2 ...) dans la variable1
serait il possible
d'avoir tous les non de fichier séparer des autre exemple :(fichier1) dans la variable1 (fichier2) dans la variable1
Dernière modification par kde4 fan (Le 27/02/2011, à 14:12)
-------------------------------------------------------------------BONJOUR ET MERCI-----------------------------------------------------------
kubuntu 64 12.04 et Linux-Mint Maya 64 (MATE)
Bureau Animer Dreamnux : http://forum.ubuntu-fr.org/viewtopic.php?id=325865
Bureau Animer kreamnux : http://forum.kubuntu-fr.org/viewtopic.php?pid=8916691
Hors ligne
#2 Le 26/02/2011, à 22:58
- FRUiT
Re : [Résolu] aide commande ls
Si tu es en bash, fais un tableau :
file=( * )
Après tu as :
${file[0]} qui vaut fichier1
${file[1]} qui vaut fichier2
etc...
Dernière modification par FRUiT (Le 27/02/2011, à 01:45)
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 27/02/2011, à 00:00
- kde4 fan
Re : [Résolu] aide commande ls
je teste ceci pour différencier les non de fichier
ls > videos_liste.txt
TRIE=tail -1 videos_liste.txt
TRIE1=tail -2 videos_liste.txt
TRIE2=tail -3 videos_liste.txt
TRIE3=tail -4 videos_liste.txt
TRIE4=tail -5 videos_liste.txt
mais je n'arrive pas a récupérer les non en sortie
je voie tail -1 en sortie
tail -1 tail -2 n'est pas approprier car il ajoute au 1er nom un 2em nom
Dernière modification par kde4 fan (Le 27/02/2011, à 13:07)
-------------------------------------------------------------------BONJOUR ET MERCI-----------------------------------------------------------
kubuntu 64 12.04 et Linux-Mint Maya 64 (MATE)
Bureau Animer Dreamnux : http://forum.ubuntu-fr.org/viewtopic.php?id=325865
Bureau Animer kreamnux : http://forum.kubuntu-fr.org/viewtopic.php?pid=8916691
Hors ligne
#4 Le 27/02/2011, à 01:47
- FRUiT
Re : [Résolu] aide commande ls
> ls
ab ac bd
> TRIE=( * )
> echo "${TRIE[0]}"
ab
> echo "${TRIE[@]}"
ab ac bd
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
#5 Le 27/02/2011, à 12:40
- kde4 fan
Re : [Résolu] aide commande ls
FRUiT
en faite je lit la structure d'un répertoire ( commande ls)
puis j'envoie dans un fichier txt ( commande > videos_liste.txt)
puis je lit le fichier txt qui contient ceci:
Alien-Energy.avi
A-long-Way.avi
Another-Dimension.avi
Atlantis-Dragon.avi
Autumn-Dream.avi
Butterfly.avi
Caustic-Cube.avi
Caverays.avi
Cave-View.avi
Cypersphere.avi
Dark-Angel.avi
puis je voudrais récupérer chaque nom de fichier séparer pour les envoyer dans une variable qui se nome (TRIE) résulta voulu (TRIE="Alien-Energy.avi")
pareille pour tous les autre nom (TRIE1="A-long-Way.avi") exceptera.....
en incrément de 1 pour la variable (TRIE) (TRIE1) (TRIE2) exceptera.....
avec ceci
ls > videos_liste.txt
puis
while read line; do echo "${line}"; done < videos_liste.txt
je me retrouve avec tous les non a la suite donc pas bon
Dernière modification par kde4 fan (Le 27/02/2011, à 13:03)
-------------------------------------------------------------------BONJOUR ET MERCI-----------------------------------------------------------
kubuntu 64 12.04 et Linux-Mint Maya 64 (MATE)
Bureau Animer Dreamnux : http://forum.ubuntu-fr.org/viewtopic.php?id=325865
Bureau Animer kreamnux : http://forum.kubuntu-fr.org/viewtopic.php?pid=8916691
Hors ligne
#6 Le 27/02/2011, à 13:25
- FRUiT
Re : [Résolu] aide commande ls
Mais tu as essayé ?
y'a même pas besoin de fichier temporaire, et encore moins de ls...
TRIE=( * )
Ou
TRIE=( *.avi )
Cela crée un tableau avec un fichier par élément de tableau.
exemple :
#!/bin/bash
TRIE=( * )
for element in "${TRIE[@]}"; do # affiche tous les éléments un par un
echo "element $element"
done
echo ; echo
echo "${TRIE[0]}" # affiche Alien-Energy.avi
echo "${TRIE[1]}" # affiche A-long-Way.avi
Pourquoi vouloir à tout prix passer par un fichier annexe ? Y'a une raison ?
Tu peux même avoir le chemin complet dans les noms des fichiers.
Exemple si tu mets le script dans le répertoire des flims :
TRIE=( ~+/* )
Ou si les flims sont ailleurs :
TRIE=( /chemin/vers/des/videos/* )
Ou,
TRIE=( /chemin/vers/des/videos/*.avi )
Dernière modification par FRUiT (Le 27/02/2011, à 13:33)
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
#7 Le 27/02/2011, à 13:37
- kde4 fan
Re : [Résolu] aide commande ls
tu a raison c'est moi qui a du mal a comprendre donc j'aie réussi avec tes commande suivante
function fonc_videosliste()
{
CHEMIN=""${HOME}"/.Dreamnux/videos/"
"${CHEMIN}"
ls
TRIE=( * )
"${TRIE[0]}"
"${TRIE[1]}"
"${TRIE[2]}"
"${TRIE[3]}"
"${TRIE[4]}"
"${TRIE[5]}"
"${TRIE[6]}"
"${TRIE[7]}"
"${TRIE[8]}"
"${TRIE[9]}"
"${TRIE[10]}"
"${TRIE[11]}"
"${TRIE[12]}"
"${TRIE[13]}"
"${TRIE[14]}"
"${TRIE[15]}"
"${TRIE[16]}"
"${TRIE[17]}"
"${TRIE[18]}"
"${TRIE[19]}"
"${TRIE[20]}"
"${TRIE[21]}"
TOUTEVIDEO="{ "${CHEMIN}""${TRIE[0]}" "${CHEMIN}""${TRIE[1]}""" "${CHEMIN}""${TRIE[2]}" "${CHEMIN}""${TRIE[3]}" "${CHEMIN}""${TRIE[4]}" "${CHEMIN}""${TRIE[5]}" "${CHEMIN}""${TRIE[6]}" "${CHEMIN}""${TRIE[7]}" "${CHEMIN}""${TRIE[8]}" "${CHEMIN}""${TRIE[9]}" "${CHEMIN}""${TRIE[10]}" "${CHEMIN}""${TRIE[11]}" "${CHEMIN}""${TRIE[12]}" "${CHEMIN}""${TRIE[13]}" "${CHEMIN}""${TRIE[14]}" "${CHEMIN}""${TRIE[15]}" "${CHEMIN}""${TRIE[16]}" "${CHEMIN}""${TRIE[17]}" "${CHEMIN}""${TRIE[18]}" "${CHEMIN}""${TRIE[19]}" "${CHEMIN}""${TRIE[20]}" "${CHEMIN}""${TRIE[21]}" }"
echo "${TOUTEVIDEO}"
}
mais je me retrouve en sortie avec ceci
.Dreamnux/videos/Cypersphere.avi
ca ces ok puis a la suite
Alien-Energy.avi A-long-Way.avi Another-Dimension.avi Atlantis-Dragon.avi Autumn-Dream.avi Butterfly.avi Caustic-Cube.avi Caverays.avi Cave-View.avi Cypersphere.avi Dark-Angel.avi Deadlord.avi Digitalized.avi Digital-Rain.avi Downfall.avi Dying-Planet.avi Earth-Man.avi Fantasy-View.avi Far-Sight.avi Firebloom.avi Flowring.avi Forrest-Falls.avi Frozen-Orb.avi Green-Galaxy.avi Green-Lake.avi Haunted-Mansion.avi Kaminfeuer.avi Lake-Mountain.avi Leaf-Drop.avi Mystic-Sword.avi Mystic-Tree.avi Open-Fire.avi Planet-Earth.avi Plasmaball.avi Powercell.avi Radiance.avi Red-Matrix.avi Ruins.avi Secluded-Blue.avi Shadowface.avi Sphere-Tree.avi Summer-Leaves.avi Sunnyfalls.avi Sureal.avi The-Core.avi The-Deal.avi Twilight-Sky.avi
ca doit être non visible donc pas bon comment éviter de les écrire a cette endroit de mon code ?
puis le reste des variable ce remplisse bien avec le bon nom doc ok
Dernière modification par kde4 fan (Le 27/02/2011, à 13:48)
-------------------------------------------------------------------BONJOUR ET MERCI-----------------------------------------------------------
kubuntu 64 12.04 et Linux-Mint Maya 64 (MATE)
Bureau Animer Dreamnux : http://forum.ubuntu-fr.org/viewtopic.php?id=325865
Bureau Animer kreamnux : http://forum.kubuntu-fr.org/viewtopic.php?pid=8916691
Hors ligne
#8 Le 27/02/2011, à 13:39
- FRUiT
Re : [Résolu] aide commande ls
Ou en sh, sans tableau :
#!/bin/sh
for element in /dossier/de/videos/*; do
echo "element $element"
# autres commandes géantes à effectuer sur chaque fichier
done
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
#9 Le 27/02/2011, à 13:51
- kde4 fan
Re : [Résolu] aide commande ls
puis a la suite
Alien-Energy.avi A-long-Way.avi Another-Dimension.avi Atlantis-Dragon.avi Autumn-Dream.avi Butterfly.avi Caustic-Cube.avi Caverays.avi Cave-View.avi Cypersphere.avi Dark-Angel.avi Deadlord.avi Digitalized.avi Digital-Rain.avi Downfall.avi Dying-Planet.avi Earth-Man.avi Fantasy-View.avi Far-Sight.avi Firebloom.avi Flowring.avi Forrest-Falls.avi Frozen-Orb.avi Green-Galaxy.avi Green-Lake.avi Haunted-Mansion.avi Kaminfeuer.avi Lake-Mountain.avi Leaf-Drop.avi Mystic-Sword.avi Mystic-Tree.avi Open-Fire.avi Planet-Earth.avi Plasmaball.avi Powercell.avi Radiance.avi Red-Matrix.avi Ruins.avi Secluded-Blue.avi Shadowface.avi Sphere-Tree.avi Summer-Leaves.avi Sunnyfalls.avi Sureal.avi The-Core.avi The-Deal.avi Twilight-Sky.avi
ca doit être non visible donc pas bon comment éviter de les écrire a cette endroit de mon code ?
-------------------------------------------------------------------BONJOUR ET MERCI-----------------------------------------------------------
kubuntu 64 12.04 et Linux-Mint Maya 64 (MATE)
Bureau Animer Dreamnux : http://forum.ubuntu-fr.org/viewtopic.php?id=325865
Bureau Animer kreamnux : http://forum.kubuntu-fr.org/viewtopic.php?pid=8916691
Hors ligne
#10 Le 27/02/2011, à 13:51
- FRUiT
Re : [Résolu] aide commande ls
Tu as des problèmes de syntaxe,
function fonc_videosliste()
{
CHEMIN=""${HOME}"/.Dreamnux/videos/"
CHEMIN="${HOME}/.Dreamnux/videos"
"${CHEMIN}"
cd "${CHEMIN}" # A la rigueur si ce que tu souhaites est changer de répertoire, à ce moment là l'option cdable_vars doit être activée (shopt -s cdable_vars)
ls # Strictement inutile
TRIE=( * )
TRIE=( $CHEMIN/* )
# Ou bien
TRIE=( ${HOME}/.Dreamnux/videos/* )
"${TRIE[0]}"
"${TRIE[1]}"
...
# J'ai pas compris tu cherches à faire quoi ici ? Afficher des éléments ? dans ce cas il faut utiliser echo ou printf, là cette syntaxe ne veut rien dire...TOUTEVIDEO="{ "${CHEMIN}""${TRIE[0]}" "${CHEMIN}""${TRIE[1]}""" "${CHEMIN}""${TRIE[2]}" "${CHEMIN}""${TRIE[3]}" "${CHEMIN}""${TRIE[4]}" "${CHEMIN}""${TRIE[5]}" "${CHEMIN}""${TRIE[6]}" "${CHEMIN}""${TRIE[7]}" "${CHEMIN}""${TRIE[8]}" "${CHEMIN}""${TRIE[9]}" "${CHEMIN}""${TRIE[10]}" "${CHEMIN}""${TRIE[11]}" "${CHEMIN}""${TRIE[12]}" "${CHEMIN}""${TRIE[13]}" "${CHEMIN}""${TRIE[14]}" "${CHEMIN}""${TRIE[15]}" "${CHEMIN}""${TRIE[16]}" "${CHEMIN}""${TRIE[17]}" "${CHEMIN}""${TRIE[18]}" "${CHEMIN}""${TRIE[19]}" "${CHEMIN}""${TRIE[20]}" "${CHEMIN}""${TRIE[21]}" }"
# Ou-la, non, et d'abord comment tu sais combien il y a d'éléments, c'est surement variable...
TOUTEVIDEO="${TRIE[@]}"
# Ce qui ne sert à rien, autant utilise ${TRIE[@]} plutôt que TOUTEVIDEO...
echo "${TOUTEVIDEO}"
echo "${TRIE[@]}"
}
Etudie plutôt ceci :
for element in ${TRIE[@]}; do
# ici tu mets tes commandes que tu souhaites appliquer à chacun des fichiers, mais en fait tu cherches à faire quoi avec les fichiers videos ? echo c'est pour l'exemple il faudra faire ici autre chose ensuite.
echo "il y a un fichier $element dans ce répertoire"
done
Dernière modification par FRUiT (Le 27/02/2011, à 14:10)
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
#11 Le 27/02/2011, à 14:10
- kde4 fan
Re : [Résolu] aide commande ls
ceci fonctionne
function fonc_videosliste()
{
CHEMIN="${HOME}/.Dreamnux/videos"
TRIE=( $CHEMIN/* )
TOUTEVIDEO="${TRIE[@]}"
echo "${TOUTEVIDEO}"
}
merci de ton aide
Dernière modification par kde4 fan (Le 27/02/2011, à 14:11)
-------------------------------------------------------------------BONJOUR ET MERCI-----------------------------------------------------------
kubuntu 64 12.04 et Linux-Mint Maya 64 (MATE)
Bureau Animer Dreamnux : http://forum.ubuntu-fr.org/viewtopic.php?id=325865
Bureau Animer kreamnux : http://forum.kubuntu-fr.org/viewtopic.php?pid=8916691
Hors ligne
#12 Le 27/02/2011, à 14:14
- FRUiT
Re : [Résolu] aide commande ls
De rian ^^
Et souviens toi que l'on utilise jamais ls dans un script, il n'y a pas sa place sauf cas extraordinaire.
Dernière modification par FRUiT (Le 27/02/2011, à 14:15)
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