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 :

N'afficher que certains caractères d'une ligne


Sujet :

Shell et commandes GNU

  1. #1
    Membre très actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2011
    Messages
    317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meuse (Lorraine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 317
    Par défaut N'afficher que certains caractères d'une ligne
    Bonjour,
    J'ai un fichier avec plusieurs lignes.
    Je veux afficher les 100 premiers caractère de chaque ligne!
    comment faire?
    Merci

  2. #2
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 724
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 724
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sed -rn 's/(^.{,100}).*/\1/p' tonFichier

  3. #3
    Expert confirmé Avatar de BufferBob
    Profil pro
    responsable R&D vidage de truites
    Inscrit en
    Novembre 2010
    Messages
    3 041
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : responsable R&D vidage de truites

    Informations forums :
    Inscription : Novembre 2010
    Messages : 3 041
    Par défaut
    salut,

    la même coté awk :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    awk '{print substr($0,1,1000)}' fichier

  4. #4
    Membre éprouvé Avatar de RaphaelG
    Homme Profil pro
    Amateur
    Inscrit en
    Juin 2016
    Messages
    94
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Amateur

    Informations forums :
    Inscription : Juin 2016
    Messages : 94
    Par défaut cut
    Avec cut :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $ cut -c 100- --complement tonfichier.txt

  5. #5
    Membre éprouvé Avatar de RaphaelG
    Homme Profil pro
    Amateur
    Inscrit en
    Juin 2016
    Messages
    94
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Amateur

    Informations forums :
    Inscription : Juin 2016
    Messages : 94
    Par défaut cut
    plus simple avec cut :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $ cut -c -100 monfichier.txt

  6. #6
    Modérateur
    Avatar de jlliagre
    Homme Profil pro
    Ingénieur support avancé & développement
    Inscrit en
    Juin 2007
    Messages
    2 695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur support avancé & développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 695
    Par défaut
    Citation Envoyé par RaphaelG Voir le message
    Avec cut :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $ cut -c 100- --complement tonfichier.txt
    Plutôt

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $ cut -c 101- --complement tonfichier.txt

  7. #7
    Modérateur
    Avatar de jlliagre
    Homme Profil pro
    Ingénieur support avancé & développement
    Inscrit en
    Juin 2007
    Messages
    2 695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur support avancé & développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 695
    Par défaut
    Et une version "pure shell" (ksh/bash):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     (IFS="";  while read line; do echo "${line:0:100}"; done < tonfichier.txt)

  8. #8
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 724
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 724
    Par défaut
    en bash, au moins, pour éviter de modifier l'IFS et conserver les blancs en début de ligne, ne pas assigner de variable avec read, et afficher REPLY
    Code BASH : Sélectionner tout - Visualiser dans une fenêtre à part
    while read; do echo "${REPLY::100}"; done <fichier

  9. #9
    Modérateur
    Avatar de jlliagre
    Homme Profil pro
    Ingénieur support avancé & développement
    Inscrit en
    Juin 2007
    Messages
    2 695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur support avancé & développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 695
    Par défaut
    Oui, c'est bon avec bash mais pas avec ksh93, qui affecte bien la variable REPLY mais supprime les espaces du début.

  10. #10
    Membre éprouvé Avatar de RaphaelG
    Homme Profil pro
    Amateur
    Inscrit en
    Juin 2016
    Messages
    94
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Amateur

    Informations forums :
    Inscription : Juin 2016
    Messages : 94
    Par défaut
    Citation Envoyé par jlliagre Voir le message
    Plutôt

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $ cut -c 101- --complement tonfichier.txt
    Oui, tu as raison; J'ai confondu avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $ cut -c -100 tonfichier.txt
    Là, c'est OK.

  11. #11
    Expert confirmé Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 418
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4 418
    Par défaut
    Bonjour,

    Je me permet pour le fun de rajouter le petit oublié:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    grep -o '^.\{,100\}' tonfichier

  12. #12
    Expert confirmé
    Homme Profil pro
    Développeur informatique en retraite
    Inscrit en
    Avril 2008
    Messages
    2 103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique en retraite

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 103
    Par défaut
    Citation Envoyé par disedorgue Voir le message
    Je me permets pour le fun de rajouter le petit oublié:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    grep -o '^.\{,100\}' tonfichier
    Mouais...
    dans ta proposition, les lignes de moins de 100 caractères ne sont pas du tout affichées.

    Allez! On va dire que ce sont les specs qui ne sont pas assez précises (ça change!)...

  13. #13
    Expert confirmé Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 418
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4 418
    Par défaut
    Si, désolé...

    PS: Merci pour la correction de conjugaison.

  14. #14
    Expert confirmé Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 418
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4 418
    Par défaut
    Je suis contre gnu grep:
    Suite à la remarque de Jack-ft, je fais quelques tests, et voila ce que me dit le gnu grep 2.6.3:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $ help read | grep -o '^.\{,100\}'
    grep: décompte de répétition mal formé
    Alors que la version 2.27, ne me pose aucun problème...
    Et petite précision: le man du grep de la 2.6.3 autorise cette syntaxe...

    En poussant encore un peu et en utilisant une syntaxe disons plus standard ( grep -o '^.\{0,100\}' ) et en mettant la valeur 4096 au lieu de 100, cela prend 18 seconde pour me rendre la main (la machine - qui ne fait rien de particulier - sur laquelle j'ai fait le test à un CPU E5-2643 à 3.40GHz (XEON) et plusieurs giga de ram):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     time help read | grep -o '^.\{0,4096\}'
    read: read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-N nchars] [-p prompt] [-t timeout] [-u fd] [name ...]
        Read a line from the standard input and split it into fields.
    ...
    ...
    real    0m18.949s
    user    0m18.712s
    sys     0m0.222s
    En conclusion, je dirais qu'il faut vraiment éviter cette commande...

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 11/05/2013, 21h00
  2. Réponses: 2
    Dernier message: 05/02/2010, 15h51
  3. [VB6]N'afficher que certain type de fichier dans une FileListBox
    Par Misha dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 03/11/2008, 19h34
  4. Réponses: 9
    Dernier message: 01/08/2008, 17h17

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