OVH Cloud OVH Cloud

recherche d'une commande

8 réponses
Avatar
daniel
Bonjour,

je cherche une commande pour enlever les 15 premières, ou dernières lignes d'un fichier.
l'inverse de head, en fait

une simple commande suffit? ou faut faire un petit programme?

Daniel
--
ANTI-SPAM
enlevez TOUS les points avant [@free.fr] pour me répondre

8 réponses

Avatar
Vincent Bernat
OoO Lors de la soirée naissante du lundi 31 janvier 2005, vers 17:58,
daniel disait:

je cherche une commande pour enlever les 15 premières, ou dernières
lignes d'un fichier. l'inverse de head, en fait


Pour obtenir un fichier sans ses 15 premières lignes, tu peux faire :
tail -n +16 tonfichier

Et pour l'avoir sans les 15 dernières lignes :
head -n -15 ton fichier

Les questions de ce genre ont plus la place sur le forum
fr.comp.os.unix.
--
I WILL NOT ENCOURAGE OTHERS TO FLY
I WILL NOT ENCOURAGE OTHERS TO FLY
I WILL NOT ENCOURAGE OTHERS TO FLY
-+- Bart Simpson on chalkboard in episode 7F03

Avatar
Sébastien Kirche
Le 31 Jan 2005, daniel a formulé :

Bonjour,

je cherche une commande pour enlever les 15 premières, ou dernières lignes
d'un fichier. l'inverse de head, en fait


L'inverse de head, c'est tail :)
Plus qu'à calculer le nombre de lignes ad-hoc avec wc.

Le MANuel devrait pouvoir te fournir les infos manquantes.

--
Sébastien Kirche

Avatar
Manuel Menal
Bonjour,


Bonjour,

je cherche une commande pour enlever les 15 premières, ou dernières l ignes d'un fichier.
l'inverse de head, en fait


sed fait ça très bien. Pour enlever les 15 dernières lignes :

$ sed -n -e :a -e '1,15!{P;N;D;};N;ba' fichier

Et pour enlever les 15 premières, c'est bien plus simple :

$ sed '1,15d' fichier

une simple commande suffit? ou faut faire un petit programme?


Je ne sais pas la différence, c'est certes une commande sed mais sed est
un langage de programmation... ;-) Enfin, un one-liner suffit, en tous
cas.

--
Manuel Menal

Avatar
Sébastien Kirche
Le 31 Jan 2005, Vincent Bernat vraute :

Pour obtenir un fichier sans ses 15 premières lignes, tu peux faire :
tail -n +16 tonfichier

Et pour l'avoir sans les 15 dernières lignes :
head -n -15 ton fichier


Tiens, c'est encore mieux que de calculer les lignes avec wc :)

--
Sébastien Kirche

Avatar
Jogo
Le 31 janv. 2005, daniel a écrit dans fr.comp.os.linux.configuration :

je cherche une commande pour enlever les 15 premières, ou dernières
lignes d'un fichier. l'inverse de head, en fait


tail

Avatar
daniel
merci,

Les questions de ce genre ont plus la place sur le forum
fr.comp.os.unix.


ok, c'est noté.

--
ANTI-SPAM
enlevez TOUS les points avant [@free.fr] pour me répondre

Avatar
daniel
merci à tous :-)

Daniel


je cherche une commande pour enlever les 15 premières, ou dernières lignes
d'un fichier. l'inverse de head, en fait

une simple commande suffit? ou faut faire un petit programme?

Daniel


--
ANTI-SPAM
enlevez TOUS les points avant [@free.fr] pour me répondre

Avatar
Stephane Chazelas
2005-01-31, 17:58(+01), daniel:
[...]
je cherche une commande pour enlever les 15 premières, ou dernières lignes d'un fichier.
l'inverse de head, en fait

une simple commande suffit? ou faut faire un petit programme?
[...]


Pour enlever les 15 premieres:

{ rm fichier && tail +16 > fichier; } < fichier

Pour les 15 dernieres, tu peux faire ca avec ex:

ex -s fichier << EOF
-14,.d
w
q
EOF

Mais note que ca n'effacera rien s'il y a moins de 15 lignes
dans le fichier.

Avec zsh, tu peux aussi faire:

zmodload -i zsh/mapfile
IFS=$'nn'
mapfile[fichier]=${${=mapfile[fichier]}[1,-16]}

--
Stéphane