Re: Shell Script > 2 ou 3 questions

トップ ページ

このメッセージに返信
著者: guilde
日付:  
To: guilde
題目: Re: Shell Script > 2 ou 3 questions
Le 18 Nov, Frederic Mantegazza à écrit :
> ---Reply to mail from <Sébastien BRUCHET>
>
>> 1 comment on récupère le nombre de fichier d'un type
>> donnée d'un répertoire
>
> Je ne sais pas s'il y a une commande speciale, sinon il suffit de compter.
>
> #!/bin/sh
>
> files=`ls`
> i=0
> for f in $files
> do
>     i=i+1   (la je ne suis pas sur)
> done
> echo $i

>


    voici beaucoup plus court (le $ représente le prompt du shell) :


$ ls | wc -w

    Et si tu ne veux voir que les fichier ou que les dossiers, 
    il faut utiliser find au lieu de ls (man find pour les options).


>> 2 comment on accède au 3ème fichiers par exemple d'un
>> répertoire d'un type donnée
>
> Idem ci-dessus, en faisant une boucle 'while' jusqu'a 3
>


    Le question n'est pas très claire. Je pense que tu veux dire 
    le 3ieme par ordre alphabétique non? Alors il faut faire comme
        cela (fait un man cut pour en savoir plus) :


$ ls | cut -f 3

>> 3 Comment on fait les modulos en script
>
> Le %, je crois.
>
>> 4 Pareil que 1 et 2 mais avec récursivité accès aux
>> fichiers dans les sousrépertoire
>
> Il y a des fonctions super pratiques : pushd et popd.
> pushd <rep> sauve le repertoire en cours et descend dans le reperoire
> <rep>. popd fait l'inverse.
>
> Pour trouver les repertoires, fait comme dans 1 (for f in $files), et
> tu ajoutes un test dessous :
>
>    if [ -d $f ]   sera vrai si $f est un repertoire.
>    do
>       ....
>    done

>


    Hum, en plus simple, je pense que le 'find' ferra très bien l'affaire 
    (man find) :


$ find lerépertoire

    parcours tous les sous répertoires récusivement. Tu peux même demander 
    à ne voir que les fichiers :


$ find lerépertoir -type f

    Et même que les fichier .c


$ find lerépertoire -type f -name "*.c"

    Les guillements sont là pour empêcher le shell d'interpréter le motif.


    Cordialement


    Nicolas
-- 
*******************************************************************
* Nicolas MOITRIER                email: Nicolas.Moitrier@??? *
* Ingénieur système           Tél : 0476634859 - FAX : 0476634850 *
* Verimag - Grenoble            WWW : http://www-verimag.imag.fr/ *
*******************************************************************