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. Contributeur
    Salut,

    On peut voir à quoi ressemble le contenu de ton fichier "ficin" s'il te plaît ?
    1. 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 ;-\
    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 ,

      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.