IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Shell et commandes GNU Discussion :

[awk] modification différente sur la dernière ligne


Sujet :

Shell et commandes GNU

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    97
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 97
    Points : 119
    Points
    119
    Par défaut [awk] modification différente sur la dernière ligne
    Bonjour,
    J'ai un petit script awk qui me modifie chaque ligne d'un fichier et je souhaite que la dernière ligne soit traité différemment des autres :

    le fichier :
    la sortie souhaitée :
    En gros je voudrais (et ce sans passer par une commande intermédiaire à la wc) connaitre le nombre de ligne total de mon fichier avant le traitement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $0{
    	if (FNR >= nb_line)
    		print $1";"
    	else
    		print $1","
    }
    Merci beaucoup pour l'aide que vous pourrez m'apporter.

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    149
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Janvier 2007
    Messages : 149
    Points : 167
    Points
    167
    Par défaut
    Bonjour,

    J'aurais pensé à faire un tit truc dans le genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    awk ' BEGIN{
      deb="o"
    }
    {
      if ( deb == "o")
      {
        deb="n";
        printf("%s",$0);
      }
      else
      {
        printf(",\n%s",$0);
      }
    }
    END{
      printf(";");
    }
    ' fichier

  3. #3
    Membre éclairé Avatar de BlaireauOne
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    492
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2007
    Messages : 492
    Points : 652
    Points
    652
    Par défaut
    Très bonne idée
    Je propose d'utiliser la variable NR (Number Record) à la place d'une variable utilisateur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    awk '
    {
      if ( NR == 1)
      {
        printf("%s",$0);
      }
      else
      {
        printf(",\n%s",$0);
      }
    }
    END{
      printf(";");
    }
    ' LISTE.lst

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    97
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 97
    Points : 119
    Points
    119
    Par défaut
    Nickel, c'est exactement ce que je voulais. Merci beaucoup

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    149
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Janvier 2007
    Messages : 149
    Points : 167
    Points
    167
    Par défaut
    Je connaissais pas NR, je pense qu'avoir apris sur le tas m'a fait passé à coté de pas mal de choses !

    Le bouquiniste s'impose !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AC-2007] Comment être sur la dernière ligne d'un sous formulaire ?
    Par tibofo dans le forum IHM
    Réponses: 3
    Dernier message: 08/09/2010, 16h45
  2. [XL-2003] copier des cellules sur la dernière ligne
    Par chrnoe dans le forum Excel
    Réponses: 1
    Dernier message: 15/02/2010, 18h18
  3. [OpenOffice][Texte] Pied de page différent sur la dernière page
    Par ludo00002 dans le forum OpenOffice & LibreOffice
    Réponses: 4
    Dernier message: 31/03/2009, 11h44
  4. 2 alignements différents sur la même ligne :?
    Par Erlen dans le forum Mise en forme
    Réponses: 3
    Dernier message: 28/04/2008, 20h40
  5. Parse error: unexpected $ sur la dernière ligne..
    Par zamoto dans le forum Langage
    Réponses: 6
    Dernier message: 01/06/2006, 12h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo