Nombre de lignes

clarabelle -  
 clarabelle -
Bonjour,

Je débute avec les commandes unix et j'aurais une petite question à qui pourrait me donner un coup de main.
Je cherche à récupérer le nombre de lignes dans un fichier. J'ai donc utilisé wc -l, ça marche. Mais le truc c'est que je voudrais stocker ce nombre de lignes dans une variable pour pouvoir l'utiliser après et c'est ça que je ne parviens pas à faire.
J'ai fait set nb = wc -l nomfichier
et quand je lui demande de m'afficher la valeur de nb (echo $nb) il m'envoie promener.
J'ai essayé set nb = 'wc -l nomfichier' mais ça ne marche pas non plus, il m'affiche pour valeur de nb la chaîne de caractères wc -l nomfichier du coup.
Est-ce que quelqu'un pourrait me dépanner ?
Merci d'avance
Configuration: Windows XP
Firefox 1.5.0.12

4 réponses

  1. dieu
     
    tu y était presque

    c'est
    nb=`wc -l fichier`
    et pas
    nb='wc -l fichier'

    la backquote et pas la quote en français

    ou alors

    nb=$(wc -l fichier)

    ensuite pour utiliser le contenu de nb c'est

    echo $nb
    mais bien sur

    echo "titi $nb toto" permet d'inserer le nb dans un echo complet de texte
    0
    1. clarabelle
       
      Super ! Ca marche ! Merci beaucoup ! J'étais donc pas si à la masse que ça en fait !
      Pendant que j'y suis, est-ce que je peux profiter de ta sympathie pour te poser une autre question ? (désolée, c'est vraiment mes premiers pas et du coup je rame bien comme il faut).
      En fait je voudrais créer autant de répertoires et/ou de fichiers qu'il y a de lignes dans un fichier "donnees_entree" (qui est en fait un fichier contenant une valeur par ligne, chacune étant une valeur différente d'une donnée d'entrée nécessaire pour lancer un calcul avec un logiciel).
      Est-ce que tu sais comment créer des répertoires du genre "répertoire_1", "répertoire_2", "répertoire_3" etc, jusqu'à "répertoire_nbtotal" ? Et pareil avec des fichiers ? Ce que je teste depuis tout à l'heure ne marche pas...
      0
  2. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    Salut,

    Je rajouterai juste un petit truc, si tu veux récupérer que le nombre de ligne il faut "filtrer" le fichier à travers un tube (pipe en anglais symboliser par "|"), sans quoi ta variable contiendra aussi le nom du fichier :
    [tmpfs]$ wc -l plop
    19 plop
    [tmpfs]$ cat plop | wc -l
    19
    [tmpfs]$
    :-))
    0
    1. clarabelle
       
      Cool ! Effetivement c'est plus pratique à utiliser comme ça. Merci !
      Si tu as une idée sur ma deuxième question je suis preneuse aussi...
      0
  3. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    Tu veux créer uniquement des répertoires numérotés avec un nom générique (répertoire_1, répertoire_2, etc.), ou des répertoires ayant pour nom la valeur de chaque ligne de ton fichier de référence ?

    Poste un exemple précis de ce que tu veux...
    0
    1. clarabelle
       
      Par exemple si j'ai trois lignes dans mon fichier d'entrée je voudrais créer trois répertoires : répertoire_1, répertoire_2, répertoire_3 et/ou trois fichiers fichier_1, fichier_2, fichier_3. Peu importe ce qu'il y a dans les lignes en question.
      0
      1. clarabelle > elbeho
         
        Ok je vais aller voir ça, ça pourra m'être bien utile je pense.
        Merci pour le tuyau !
        0
  4. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    [tmpfs]$ ls
    plop
    
    [tmpfs]$ cat plop
    Une ligne
    puis une autre
    et encore une autre
    
    [tmpfs]$ for i in $(seq $(cat plop | wc -l));do mkdir "repertoire_$i";done
    
    [tmpfs]$ ls
    plop  repertoire_1/  repertoire_2/  repertoire_3/
    
    [tmpfs]$ for i in $(seq $(cat plop | wc -l));do touch "fichier_$i";done
    
    [tmpfs]$ ls
    fichier_1  fichier_2  fichier_3  plop  repertoire_1/  repertoire_2/  repertoire_3/
    
    [tmpfs]$
    ;-))
    0
    1. clarabelle
       
      Super ! Ca marche !
      Merci beaucoup, vraiment !
      C'est fou comme quand on a la réponse ça semble pas si difficile que ça et quand on la cherche ça semble insurmontable...
      Bon j'espère pouvoir m'en sortir pour la suite. Merci encore !
      0