Afficher un fichier sauf sa première ligne...

Afficher un fichier sauf sa première ligne... - Codes et scripts - Linux et OS Alternatifs

Marsh Posté le 18-08-2003 à 12:15:21    

Bonjour,
J'aimeraiqu'un script m'affiche le contenu d'un fichier texte sauf sa première ligne...
un peu le contraire de  
cat file | head -n1
 
Comment puis-je faire ?

Reply

Marsh Posté le 18-08-2003 à 12:15:21   

Reply

Marsh Posté le 18-08-2003 à 12:19:37    

Sorg a écrit :

Bonjour,
J'aimeraiqu'un script m'affiche le contenu d'un fichier texte sauf sa première ligne...
un peu le contraire de  
cat file | head -n1
 
Comment puis-je faire ?

cat file | grep -v "`cat file | head -n1`" devrait marcher...


Message édité par Profil supprimé le 18-08-2003 à 12:20:27
Reply

Marsh Posté le 18-08-2003 à 12:28:46    

tail +2 bidule  :whistle:

Reply

Marsh Posté le 18-08-2003 à 13:10:47    

911GT3 a écrit :

tail +2 bidule  :whistle:  

c vré ke cette réponse est meilleur, kom ça, si il y a une ligne similaire à la 1è dans le fichier, elle sera affichée quand même... Je recnnais mon erreur  :jap:

Reply

Marsh Posté le 18-08-2003 à 23:26:00    

tac file | head -n1

Reply

Marsh Posté le 19-08-2003 à 07:46:24    

cat fichier | sed 1,1d

Reply

Marsh Posté le 19-08-2003 à 11:04:59    

Encore des cat inutiles...
Tu as effectivement plein d'autres solutions mais celle avec tail (ou head) me semble la plus propre.
awk 'NR>1' file
perl -ne '{ print if $.>1 }' file
{ read a; while read a; do echo "$a"; done; } < file
...

Reply

Marsh Posté le 28-09-2006 à 14:43:20    

et pour récuppérer tout sauf les 4 dernières ?
vu que "head +4" ne fonctionne pas ?
il faut logiquement connaître la taille du fichier ?
travailler avec la taille du fichier c'est possible avec [[$(wc -l file)]] mais comment soutraire 5 à la taille ?
 
des idées ?
 
Merci

Reply

Marsh Posté le 28-09-2006 à 14:50:25    

sorg a écrit :

Bonjour,
J'aimeraiqu'un script m'affiche le contenu d'un fichier texte sauf sa première ligne...
un peu le contraire de  
cat file | head -n1
 
Comment puis-je faire ?


tail -n +1


4get9 a écrit :

et pour récuppérer tout sauf les 4 dernières ?
vu que "head +4" ne fonctionne pas ?
il faut logiquement connaître la taille du fichier ?
travailler avec la taille du fichier c'est possible avec [[$(wc -l file)]] mais comment soutraire 5 à la taille ?
 
des idées ?
 
Merci


head -n -4

Message cité 1 fois
Message édité par Mjules le 28-09-2006 à 14:51:52

---------------
Celui qui pose une question est idiot 5 minutes. Celui qui n'en pose pas le reste toute sa vie. |  Membre du grand complot pharmaceutico-médico-scientifico-judéo-maçonnique.
Reply

Marsh Posté le 28-09-2006 à 14:59:24    


 
ça me retrourne une erreur de syntaxe
 
et "head -n 4" ou "head -4" me retourne les 4 premières lignes
et head avec un "+" ne fonctionne pas  :sweat:  

Reply

Marsh Posté le 28-09-2006 à 14:59:24   

Reply

Marsh Posté le 28-09-2006 à 18:09:49    

t'as quelle version de head ? parce que chez moi, avec la 5.2.1 (coreutils) pas de problèmes


---------------
Celui qui pose une question est idiot 5 minutes. Celui qui n'en pose pas le reste toute sa vie. |  Membre du grand complot pharmaceutico-médico-scientifico-judéo-maçonnique.
Reply

Marsh Posté le 28-09-2006 à 20:40:08    

Aie je m'en doutais ! :/
je suis sur SunOS, je regarderais demain
Et je demanderais aux admins si y'a moyen de mettre à jour (le serveur contient des données sensibles)

Reply

Marsh Posté le 28-09-2006 à 20:40:22    

et au fait : merci !

Reply

Marsh Posté le 28-09-2006 à 20:59:54    

sinon, qui marche pas mal (j'espère ne pas avoir fait de truc spécifique bash) :

Code :
  1. #!/bin/sh
  2. NOMBRE=$((`wc -l mon_fichier | cut -d" " -f1`-4))  //compte le nombre de ligne, tronque le résultat pour n'afficher que ça et retranche 4 au nombre de ligne
  3. head -n $NOMBRE mon_fichier


Message édité par Mjules le 28-09-2006 à 21:00:11

---------------
Celui qui pose une question est idiot 5 minutes. Celui qui n'en pose pas le reste toute sa vie. |  Membre du grand complot pharmaceutico-médico-scientifico-judéo-maçonnique.
Reply

Marsh Posté le 28-09-2006 à 21:44:06    

ah très intéressant j'avais fait des essais avec un wc -l mais j'arrivais pas à soustraire, et je pensais que c'était peut être pas possible
 
je vais essayer ça demain !
 
encore merci !

Reply

Marsh Posté le 29-09-2006 à 10:31:47    

Excellent ! Ca marche !
 

Taille=$((`wc -l $JalPai | cut -d" " -f3`-5))  
 
tail +2 $JalPai | head -$Taille > $JalEpur


 
le tail me sert à me débarasser de la 1ere ligne (on commence donc à la 2e)
et le head me sert à me débarasser des 4 dernières lignes (je prends -5 car je dois tenir compte que j'ai retiré juste avant 1 ligne avec mon tail )
 
par contre j'ai du mettre -f3 et non -f1, bizarre !  :??:

Reply

Marsh Posté le 29-09-2006 à 10:32:03    

et merci !

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed