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

Unix Discussion :

suppression plusieurs colonnes de fin awk ou unix


Sujet :

Unix

  1. #1
    Membre à l'essai
    Homme Profil pro
    ingénieur d'étude
    Inscrit en
    Octobre 2014
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : ingénieur d'étude
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2014
    Messages : 14
    Points : 10
    Points
    10
    Par défaut suppression plusieurs colonnes de fin awk ou unix
    Bonjour
    J'ai un fichier avec un nombre de colonne différent entre 15 et 200.
    Je souhaite éliminer les 3 dernières colonnes puis imprimer la 2ème colonne et la dernière

    fichier de départ :
    1 2 0 125 3 4 0
    1 3 0 1 2 6 122 1 2 0
    1 4 1 12 12 13 14 15 133 1 2 0
    1 7 0 1 135 0 0 0

    Je souhaite avoir à l 'arrivée un fichier type :
    2 125
    3 122
    4 133
    7 135


    je peux faire
    gawk '{$NF="";print} ' fichier1 > fichier2
    gawk '{$NF="";print} ' fichier2 > fichier3
    gawk '{$NF="";print} ' fichier3 > fichier4
    gawk '{ print $2,$NF}' fichier4 > fichier5
    rm fichier2 fichier3 fichier4
    mais ça prend énormément de temps car mes fichiers sont volumineux.
    Si vous avez une astuce je suis preneur.

    Question parallèle qui peut être utile, comment faire pour n'imprimer que l'avant avant dernière colonne d'un fichier

    Merci

  2. #2
    Expert éminent sénior Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 243
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 243
    Points : 13 458
    Points
    13 458
    Par défaut
    Bonjour

    la réponse est toujours la même. $2 désigne la deuxième colonne, $NF la dernière colonne et $(NF-2) l'avant avant dernière. Ou l'antépénultième quand on a du vocabulaire.
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.

  3. #3
    Membre à l'essai
    Homme Profil pro
    ingénieur d'étude
    Inscrit en
    Octobre 2014
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : ingénieur d'étude
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2014
    Messages : 14
    Points : 10
    Points
    10
    Par défaut
    dans le poste précédent tu avais noté

    gawk '{print $2,$NF;} ' entree >sortie

    et du coup ça ne prenait pas l'antépénultième (on ne peut pas tout avoir )

    Avec $(NF-2)
    C'est parfait, c'était l'astuce qu'il me fallait.

    Merci beaucoup

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

Discussions similaires

  1. suppression de plusieurs colonnes et lignes à la fois
    Par Ericntoukam dans le forum VB.NET
    Réponses: 1
    Dernier message: 26/05/2013, 10h16
  2. [XL-2007] Suppression Doublons en comparaison de plusieurs colonnes
    Par Gabrieletmarylou dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 08/10/2012, 17h40
  3. Suppression de caracteres en fin de ligne avec awk ou sed
    Par julinho99 dans le forum Shell et commandes GNU
    Réponses: 5
    Dernier message: 04/11/2008, 18h03
  4. suppression de plusieurs ligne en fin de fichier
    Par jeanpaul702 dans le forum SQL
    Réponses: 7
    Dernier message: 28/01/2008, 12h28
  5. suppression de plusieurs ligne en fin de fichier
    Par jeanpaul702 dans le forum Langage SQL
    Réponses: 4
    Dernier message: 26/01/2008, 10h11

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