Aller au contenu

probléme sur IFS et for (shell )


-lsl-

Messages recommandés

Posté(e)

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 .......

Posté(e)

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 !!!)

Posté(e)
  -lsl- a dit :
?* -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é)

Posté(e)
  -lsl- a dit :
tu t'y serais pris comment gauret  ???
Comme un gauret :reflechis:

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

  -lsl- a dit :
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.

Posté(e)

ç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:

Archivé

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

×
×
  • Créer...