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 : 40
    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
    Vous êtes mélomanes? allez voir harmoniedecharolles.no-ip.org
    Tout est possible, tout est réalisable, le tout étant de savoir comment faire
    astuces pc
    gull villefranche

  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.
    Un problème bien posé est déjà résolu (H. Bergson).

  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.
    Un problème bien posé est déjà résolu (H. Bergson).

  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