[linux] shell/awk script

natoe -  
 etude -
shell / awk ?
salut, j'aimerais faire un script "simple" mais je vois pas comment faire.

en entré : j'ai une serie de fichier du genre PIPI01 , PIPI02, PIPI03, PIPI05.

j'aimerais avoir en sortie : " PIPI04 "

Les fichiers on le même nom et une partie s'incremente.

des idées? je vois pas commetn faire 0o

2 réponses

  1. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    Salut,

    J'ai pas tout compris là ! ;-\
    Tu veux faire quoi exactement, compter le nombre de fichiers ? (en fonction d'un critère particulier ?)
    0
    1. natoe
       
      non trouver les fichiers manquants.

      genre dans un répertoire j'ai ses fichiers :

      01.TXT
      02.TXT
      03.TXT
      06.TXT

      et j'aimearis qu'en lancant le script au final je sache quels fichiers manquent :

      04.TXT
      05.TXT

      Je me suis mieux expliqué ? :)
      0
  2. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    Tiens tu peux essayer un truc comme ça :
    #! /bin/bash
    
    count=$(ls -1v *.txt | tail -1 | sed 's/[a-zA-Z\.]//g')
    
    for i in $(seq -w 1 $count)
    do ls -1 | grep "$i" >/dev/null
    if [ "$?" = "1" ]
    then echo "fichier $i manquant."
    fi
    done
    mais bon, c'est pas très optimisé du fait qu'il y a plein de paramètres qui m'échappent. Le script marchera si ton répertoire contient 99 fichiers. Dans le cas où il y aurait plus de 100 fichiers, il faudra revoir la commande "$(seq -w 1 $count)", du moins l'option "-w"...

    ;-))
    0
    1. etude
       
      Salut tt le monde
      J ss un super USR et j vx ecrire un programme shell « RENOMER » qui accepte en 1 er paramètre le nom d’utulisateur d’ système et comme 2 eme paramètre une valeur entier N .
      Càd le programme RENOMER permet de changer le nom de N fichiers texte de repertoire donnée en 1 er parametre
      Par exemple :
      Rrep1 contient fic1 ,fic2,fic3 …
      Après l’execution du programme les fichiers seront comme suite
      Rep1_fic1 , Rep1_fic2 ,
      Si le 2 eme parametre es egale à 2=N ,
      J’ espere bien que les données et l’exemple sont clair
      Et voila mon script et je veux de m’aider à corriger ce programme

      #!bin/sh/RENOMER
      if ($#!=2 –a if let $2 –eq 1)then
      echo "erreur"
      else
      If grep “^$1:” passwd
      Then $i=wc_w $1
      If $1 –gt $i
      Then echo “ereur”
      fi
      Else
      cd ~/$1
      find . –name \(*.txt\) {} mv res
      $cp=0
      for cp in $2
      do
      sed ‘’ \s\$cp\$cp_$1\ ‘’ res > $1
      done
      fi
      fi

      merci bcppp
      0