Une petite commande ...

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. Modérateur
    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
    1. 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. Modérateur
        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. 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
    2. Modérateur
      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
      1. Modérateur
        Salut,
        ll | sed  '$d'
        ;-))
        0