Une petite commande ...

floxi Messages postés 153 Statut Membre -  
jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   -
bonjour à tous,

et bien voila je cherche une commande qui puisse m'afficher tous sauf la derniere ligne, prenons un exemple.

ll | tail -n1 -> m'affiche uniquement la derniere ligne

la commande rechercher afficherai toutes les autres sauf celle la

Merci de vos reponses
--
Flox

4 réponses

  1. jisisv Messages postés 3678 Statut Modérateur 936
     
    head -n - $lines_to_leave
    johan@johan:~$ tail brol
    991
    992
    993
    994
    995
    996
    997
    998
    999
    1000
    johan@johan:~$ head -n -1 brol| tail
    990
    991
    992
    993
    994
    995
    996
    997
    998
    999
    

    man head; man tail
    Johan
    0
  2. floxi Messages postés 153 Statut Membre 94
     
    cela ne fonctionne pas "nombre invalide de ligne", et je suis désolé pour ces questions mais mes man ne sont pas tres riche.

    je précise que je doit absolument utilisé un tube ll | ......
    0
    1. jisisv Messages postés 3678 Statut Modérateur 936
       
      Sur ma vieille Sarge
      johan@johan:~$ head --help
      Usage: head [OPTION]... [FICHIER]...
      Afficher les 10 premières lignes de chaque FICHIER sur la sortie standard.
      Avec plus d'un FICHIER, précéder chacun d'une en-tête donnant le nom du fichier.
      Sans FICHIER, ou quand FICHIER est -, lire de l'entrée standard.
      
      Les arguments obligatoires pour les options de formes longues le sont aussi
      pour les options de formes courtes.
        -c, --bytes=[-]N         afficher les premiers N octets de chaque fichier;
                                   lorsque précédé du préfixe `-', afficher tous les octets
                                   sauf les derniers N octets de chaque fichier
        -n, --lines=[-]N         afficher les N premières lignes au lieu des 10 premières;
                                   lorsque précédé du préfixe `-', afficher toutes les lignes
                                   sauf les N dernières lignes de chaque fichier
        -q, --quiet, --silent    ne pas afficher les en-têtes avec les
                                  noms de fichiers
        -v, --verbose            toujours afficher les en-têtes avec les
                                  noms de fichiers
            --help      afficher l'aide-mémoire
            --version   afficher le nom et la version du logiciel
      
      N peut être suivie d'un suffixe multiplicatif:
      b pour 512, k pour 1024, m pour 1024*1024.
      
      Rapporter toutes anomalies à <bug-coreutils@gnu.org>.
      

      Peut-être ne disposes-tu pas de la version GNU de head?
      Sinon ceci
      johan@johan:~$ head -$(($(cat brol | wc -l ) -1)) brol

      0
    2. floxi Messages postés 153 Statut Membre 94
       
      je dispose d'une redhat9 la version du head est 4.5.3, et la nouvelle commande que vous proposez ne marche malheureusement pas, d'abord il me dit que la variable doit etre nommé, je remplace par $1 ensuite il me dit que les parentheses sont mal placés alors que cela correspond

      une autre idée car je ne voit pas du tout merci
      0
  3. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
     
    Salut,

    avec tac tu lis le fichier à l'envers
    ensuite tu sais comment faire pour lire à compter de la 2ème ligne
    encore une fois tac pour avoir le fichier dans l'ordre normale
    tac fichier | tail +n | tac
    lami20j

    P.S je n'ai pas testé cette commande
    0
  4. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    Salut,
    ll | sed  '$d'
    ;-))
    0