Comment utulisé awk dans mon script

Bonjour,

j'ai un scripte ou je doit prendre la duré comme un chiffre et non pas un caractère ,quelle la
façon ,mon script et le suivant:

ficin=$1
cut -c 37-48,188-198 $ficin | while read dure nd
do
if [[ $dure -gt 7200 ]]
then
echo $nb $nd >> FIC_Dure_SUP_2
fi
done

dure:la durée de communication
nd :numéros d'appel

merci d'anance.

4 réponses

  1. salut ,

    quand j'ai exécute le script il ma fiche le message d'erreur suivant:

    /dure: [[: 020675954: value too great for base (error token is "020675954")

    que je doit faire
    merci
    1. Contributeur
      C'est à cause du "0" en début. Il te faut l'éliminer avent de faire le test.
  2. salut,

    j'ai utilisée la cut -c 37-48,188-198,pour récupéré les deux champs numéros d'appel est la durée d'appel puis faire la condition sur la durée,c'est à dire la condition (dure -gt 7200).

    merci
    1. Contributeur
      Ben si tes champs récupérés sont bons, je ne vois pas où est le problème avec ton script, la preuve (j'ai simplifié avec $1 et $2, mais le test est le même) :

      $ cat foo.sh 
      #! /bin/bash
      
      if [[ $1 -gt 7200 ]]
      then
      echo $2 $2
      else
      echo "Durée plus petite"
      fi
      
      $ ./foo.sh 7000 15
      Durée plus petite
      
      $ ./foo.sh 7201 15
      15 15
      
      $ 
  3. salut,

    le contenu de fichier est le suivant:

    WLL_BOUIRA 110051 SSC 020706834 20130620000032 079951

    6648

    00000115 00000006

    avec le premier numéros = nd (020706834)

    et le avant dernier =durée (000000115)

    merci
    1. Contributeur
      Euh... là tes données sont sur plusieurs lignes, c'est normal ?

      Si on applique la commande "cut" sur cet exemple, voilà ce qu'il en retourne :
      $ cut -c 37-48,188-198 fichier 
      0620000032 0
      
      
      
      
      
      $

      Que veux-tu faire avec ça ? J'ai du mal à comprendre ;-\
  4. Contributeur
    Salut,

    On peut voir à quoi ressemble le contenu de ton fichier "ficin" s'il te plaît ?