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 :

Suppression de caracteres en fin de ligne avec awk ou sed


Sujet :

Shell et commandes GNU

  1. #1
    Nouveau membre du Club
    Inscrit en
    Mars 2008
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 53
    Points : 27
    Points
    27
    Par défaut Suppression de caracteres en fin de ligne avec awk ou sed
    Bonjour,

    Je cherche a supprimer les 3 derniers caracteres (*XX) de chaque ligne de mon fichier à l'aide d'une commande awk, sed ou autre

    voici un exemple de fichier
    $M,29,26,L1P,D,1498,455982,Y,20118033.402,,,,36.0,,,0*13
    $P,10,27,GPSCA,455976.0,Y,0,320,22c1da00251baad01181d7660c89f0bb1652a6b201cb02883681683801bae8780372fb5e1c2019eb*63
    $N,2,51,INAV,1000,7db53f65f393d6926c9be701758280019ff8003a7c1800000ff003c83840051e9d0001798801d40d2006004560b80007eaf0001f37000000f800020e300017efc0085fb00001048c000016582c0001f7b00007c50000000d0000838c0005fac00017c0400040a1000002160a80007d6a0001f65000002f000020c10001*7c
    $I,6,E5,0,0*68
    $S,*0b
    Merci d'avance

  2. #2
    Membre confirmé Avatar de alexp
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    459
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 459
    Points : 532
    Points
    532
    Par défaut
    si le caractères numéro 3 en partant de la fin est toujours le même (dans ton exemple un * ) tu peux le faire avec cut :
    cette commande t'affichera le resultat à l'écran sans modifier ton fichier. Pour ecrire dans le fichier (mieux vaut conserver l'original et donc créer un nouveau)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cut -f1 -d * fichier > nouveau_fichier

  3. #3
    Membre éclairé Avatar de jmelyn
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Septembre 2007
    Messages
    703
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Septembre 2007
    Messages : 703
    Points : 823
    Points
    823
    Par défaut
    Peux-tu garantir qu'il n'y a qu'un seul caractère * dans chaque ligne (...*XX)? Si ce n'est pas le cas, la solution cut ne fonctionnera pas... Et donc il faut utiliser sed:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sed -e 's/\*[[:alnum:]][[:alnum:]]$//g' fichier_in > fichier_out
    Edit: si les deux derniers caractères sont des chiffres hexadécimaux, alors on peut remplacer alnum par xdigit.

  4. #4
    Nouveau membre du Club
    Inscrit en
    Mars 2008
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 53
    Points : 27
    Points
    27
    Par défaut
    Merci beaucoup pour vos reponses
    J'ai pris la methode de jmelyn qui a l'air de tres bien fonctionné

  5. #5
    Membre éclairé Avatar de jmelyn
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Septembre 2007
    Messages
    703
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Septembre 2007
    Messages : 703
    Points : 823
    Points
    823
    Par défaut
    Elle est plus sûre, mais nettement plus compliquée que celle d'alexp. Pour explication:
    Je cherche les 3 derniers caractères qui doivent être * suivi de deux autres lettres ou chiffres. Si c'est le cas, je les remplace par... rien du tout. Et je fais ça sur chaque ligne du fichier.

  6. #6
    Nouveau membre du Club
    Inscrit en
    Mars 2008
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 53
    Points : 27
    Points
    27
    Par défaut
    ça m'arrange car j'utilise deja des commandes sed pour faire d'autres modifs sur chaque ligne

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 04/05/2014, 23h08
  2. ajouter une chaine de caractere en fin de ligne
    Par parano dans le forum Langage
    Réponses: 2
    Dernier message: 05/04/2007, 18h42
  3. [Windows] Caractere de fin de ligne...
    Par sloshy dans le forum Général Python
    Réponses: 2
    Dernier message: 13/05/2006, 12h36
  4. Probleme de caractere de fin de ligne
    Par mask66 dans le forum Applications et environnements graphiques
    Réponses: 2
    Dernier message: 20/07/2005, 14h09
  5. le caractere de saut de ligne avec SetDlgItemText
    Par matthieup dans le forum Windows
    Réponses: 4
    Dernier message: 07/11/2004, 18h31

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