Aller au contenu

probléme sur IFS et for (shell )


-lsl-

Messages recommandés

salut tt le monde !!!

j'ai un petit probléme avec IFS et for

echo "ce script va scanner les repertoires " 
find $HOME/photos/?* -type d > $HOME/photos/tree.txt
cat $HOME/photos/tree.txt
echo " voici ce que ca donne avec IFS et for !:"
## pour le separateur
IFS="\n"
#**************************************************
for rep in `find $HOME/photos/?* -type d`;do
echo "il y a un repertoire:" $rep
done

et voila le résultat

ce script va scanner les repertoires

/home/david/photos/fdgdkio

/home/david/photos/fdgdkio/fear

/home/david/photos/nouvea udossier

/home/david/photos/nouvea udossier/kl

voici ce que ca donne avec IFS et for !:

il y a un repertoire: /home/david/photos/fdgdkio

/home/david/photos/fdgdkio/fear

/home/david/photos/

il y a un repertoire: ouvea udossier

/home/david/photos/

il y a un repertoire: ouvea udossier/kl

et je comprends pas pourquoi ???????? sniff .......

Lien vers le commentaire
Partager sur d’autres sites

tu t'y serais pris comment gauret ???

je suis preneur si tu as une tech qui marche !!!! ( car je dois faire des action identiques dans chaques dossier sous dossier , bien sur il faut que même les espaces dans les noms ne génent pas !!!!)

?* -type d = pour moi je disais a shell tu trouves tous les dossier qui ont au moins une lettre dans leur nom

merci pour votre aide !!!

( ca se voit que je fais de la bio et pas de l'info lol !!!)

Lien vers le commentaire
Partager sur d’autres sites

?* -type d = pour moi je disais a shell tu trouves tous les dossier qui ont au moins une lettre dans leur nom

Pourquoi faire ? Si c'est pour pas récupérer ~/photos un petit -mindepth 1 fera l'affaire.

Et attention à ta definition de ta variable IFS, si tu utilises pas $'\n' il va ignorer l'antislash et considérer que le séparateur est la lettre "n".

IFS=$'\n'
for rep in `find $HOME/photos -type d -mindepth 1`;do
echo "il y a un repertoire:" $rep
done

(non testé)

Lien vers le commentaire
Partager sur d’autres sites

tu t'y serais pris comment gauret  ???
Comme un gauret :reflechis:

Désolé ça ne fait rire que moi. :chinois:

je suis preneur si tu as une tech qui marche !!!!

[...]

?* -type d =  pour moi je disais a shell tu trouves tous les dossier qui  ont au moins une lettre dans leur nom

Par contre j'ai testé ton truc sans le ?* [EDIT : et sans le IFS aussi] et ça fonctionne très bien avec les espaces.

Et pourquoi tu veux un dossier qui aie au moins une lettre (ou un chiffre) ? Si il n'a pas au moins une lettre, il ne lui reste plus grand chose...

EDIT : Ooups, trop rapide pour moi le gauret.

Lien vers le commentaire
Partager sur d’autres sites

ça marche !!!!!!!!!!!! OH my GOD !!!!!!!!!!

C'était avec mon IFS que cela foirait ( et c'est pour cela que je ne voyais plus le n !) ..;et quand au coup du mindepth 1 pour eviter les ~/photos ..... trop bon

:mdr2: il est trés fort ce petit cochon :zarb:

:zarb: Promis je ne mangerais plus jamais de cochon

:-D:mdr2::non::roll::zarb:

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...