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

Linux Discussion :

saut de ligne au Xieme separateur (shell)


Sujet :

Linux

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Décembre 2006
    Messages
    243
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 243
    Par défaut saut de ligne au Xieme separateur (shell)
    Bonjour,

    Je dispose d'un fichier contenant des valeurs séparées par un séparateur.
    J'utilise le shell pour traiter le fichier.
    Je souhaite insérer un saut de ligne tous les X séparateurs.
    Je peux utiliser sed pour insérer le saut de ligne au Xieme séparateur, le problème est de compter jusque là.

    Merci d'avance.

  2. #2
    Membre émérite 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
    Par défaut
    Citation Envoyé par jonathan1
    Bonjour,
    Je souhaite insérer un saut de ligne tous les X séparateurs.
    Solution en awk

    Fichier en entrée :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    aa:aa:aa:aa:aa:aa:aa:aa:aa:10:11:aa:aa:aa:aa:aa:aa:aa:aa:20:21
    bb:bb:bb:bb:bb:bb:bb:bb:bb:10:11:bb:bb:bb:bb:bb:bb:bb:bb:20:21
    Procédure awk :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    awk -F":" -v NbreSepar=10 '
    {
    	CtrSepar=0
    	for (champ=1;champ <= NF ; champ++) {
    		if (CtrSepar >= NbreSepar) {
    			print ""
    			CtrSepar=0
    		}
    		printf("%s:",$champ)
    		CtrSepar++
    	}
    	print ""
    } ' toto.txt

    sortie :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    aa:aa:aa:aa:aa:aa:aa:aa:aa:10:
    11:aa:aa:aa:aa:aa:aa:aa:aa:20:
    21:
    bb:bb:bb:bb:bb:bb:bb:bb:bb:10:
    11:bb:bb:bb:bb:bb:bb:bb:bb:20:
    21:

  3. #3
    Membre éclairé
    Inscrit en
    Décembre 2006
    Messages
    243
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 243
    Par défaut
    Pas mal...

    J'avais trouvé une solution de dépannage (en awk aussi).

    Merci.

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

Discussions similaires

  1. SHELL insertion de caractere et saut de ligne
    Par mangalor dans le forum Unix
    Réponses: 8
    Dernier message: 03/10/2009, 12h09
  2. Effectuer un saut de ligne dans un "shell"
    Par skand dans le forum VB.NET
    Réponses: 16
    Dernier message: 19/09/2007, 09h45
  3. Saut de ligne sans <br/>
    Par mattmat dans le forum XSL/XSLT/XPATH
    Réponses: 5
    Dernier message: 21/06/2007, 12h21
  4. Lecture de saut de ligne...
    Par Garion dans le forum C
    Réponses: 5
    Dernier message: 13/02/2004, 12h42
  5. [JTextPane] saut de ligne...
    Par neric dans le forum Composants
    Réponses: 2
    Dernier message: 21/01/2004, 16h01

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