Print d'un fichier

Résolu
stephbret56 Messages postés 195 Statut Membre -  
stephbret56 Messages postés 195 Statut Membre -
Bonjour,
J'aimerai faire le print d'un fichier de la ligne 25 à la ligne 30 comment faire??

Système Unix Aix
merci de votre aide

8 réponses

  1. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    Salut,
    sed -n '25,30p' fichier
    ;-))
    0
  2. stephbret56 Messages postés 195 Statut Membre 6
     
    Bonjour,

    Est-il possible de faire la même chose en utilisant +5 exemple
    sed -n '25,+5p' fichier

    ou autrement?

    Merci
    0
    1. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
       
      Tel que tu l'as écrit c'est bon ;-))

      PS. Marche avec les versions récentes de "sed" (GNU sed 3.02 et supérieur)
      0
  3. stephbret56 Messages postés 195 Statut Membre 6
     
    Ben non ça ne marche pas je dois avoir l'ancienne version
    Suite à ma commande sed j'ai le message suivant:
    sed -n '25,+5p' fichier
    sed : 0602-404 Analyse syntaxique de la fonction 25,+5p impossible.

    Y-a t-il une autre facon de faire?
    0
  4. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    sed -n '25 {N;N;N;N;N;p}'
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. stephbret56 Messages postés 195 Statut Membre 6
     
    Impossible de passer la commande.
    On est obligé de passer par un sed pour faire un print de la ligne xx à la ligne +5??
    il n'existe pas une commande print XX,+X ou un cat ou autre chose?
    0
  7. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    Bizarre que ça marche pas ;-\
    Quelle version de "sed" ? (sed --version)
    [jp@MDK-2008 trash]$ cat plop
    ligne 1
    ligne 2
    ligne 3
    ligne 4
    ligne 5
    ligne 6
    ligne 7
    ligne 8
    ligne 9
    ligne 10
    [jp@MDK-2008 trash]$ sed -n '4,+4p' plop
    ligne 4
    ligne 5
    ligne 6
    ligne 7
    ligne 8
    [jp@MDK-2008 trash]$ sed -n '4 {N;N;N;N;p}' plop
    ligne 4
    ligne 5
    ligne 6
    ligne 7
    ligne 8
    [jp@MDK-2008 trash]$
    Tu peux ausi essayer avec "awk" :
    [jp@MDK-2008 trash]$ awk 'NR == 4, NR == (4+4) {print $0 }' plop
    ligne 4
    ligne 5
    ligne 6
    ligne 7
    ligne 8
    [jp@MDK-2008 trash]$
    ;-))
    0
  8. stephbret56 Messages postés 195 Statut Membre 6
     
    Merci pour l'astuce du awk JP trop cool ça marche.

    Par contre je ne comprends pas bien le fonctionnement de NR == 4, NR == (4+4)

    ben la je coule help

    Merci encore de ton aide
    0
    1. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
       
      NR est une variable interne à awk et qui est en fait un compteur de lignes.

      Donc "NR == 4" cible la 4ème ligne et "NR == (4+4)" cible le 8ème ligne et on demande l'affichage de chacune des lignes comprises dans cet intervalle ("print $0") ;-))
      0
  9. stephbret56 Messages postés 195 Statut Membre 6
     
    Ok merci beaucoup pour l'explication c'est claire maintenant.

    Merci et bonne fin de journée
    0