Question pour un champion

Fermé
mikbrank - 2 nov. 2005 à 15:22
bacchuss Messages postés 1162 Date d'inscription samedi 13 décembre 2003 Statut Membre Dernière intervention 6 avril 2009 - 3 nov. 2005 à 09:10
bonjour.
je veux en une seule et seulement une commande afficher a l ecran
les 10 premieres lignes et les 10 dernieres d un texte.
J ai en deux lignes / head -10; tail -10.

5 réponses

en plusieurs commande effectivement

head -10 toto | tail -10

ca fait 1 ligne mais pas 1 commande (2 processus à la suite)



je pense pas que ce soit possible en fait en une seule commande
même cut je crois pas que ça puisse le faire....

par contre si tu connais à l'avance le nombre total de ligne là oui c'est faisable en utilisant vi (par exemple pour un fichier de 90 lignes)

vi -c "11,80 d|:wq" toto

gardera dans le fichier toto que ces 10premieres et 10dernieres lignes soit 20lignes
0
kmf31 Messages postés 1564 Date d'inscription mercredi 30 mars 2005 Statut Contributeur Dernière intervention 22 juin 2007 501
2 nov. 2005 à 15:43
head -10 toto | tail -10

Ce n'est pas correct: Ca prend les 10er lignes de toto et apres le tail prend les 10 derniers lignes de ca mais pas de toto!! Bref le "tail -10" ne change rien de tout.
0
kmf31 Messages postés 1564 Date d'inscription mercredi 30 mars 2005 Statut Contributeur Dernière intervention 22 juin 2007 501
2 nov. 2005 à 15:41
Tu peus tout betement tapper ca en une ligne:
head -10  fichier ; tail -10 fichier

(on peut enchainer de commandes avec ";").
Sinon tu fais un programe C toi meme (une tres jolie exo TD !) qui ferait ca.
0
f - le fichier avec au moins 20 lignes
g - le fichier résultat
(head -10 f;tail -10 f) >g
0
bacchuss Messages postés 1162 Date d'inscription samedi 13 décembre 2003 Statut Membre Dernière intervention 6 avril 2009 190
2 nov. 2005 à 16:12
et en prenant le probleme a l'envers, c'est a dire tout afficher sauf les lignes dont le numero est superieur a 10 et inferieur a (nb lignes -10)

ca doit etre plus possible, non ?
0
kmf31 Messages postés 1564 Date d'inscription mercredi 30 mars 2005 Statut Contributeur Dernière intervention 22 juin 2007 501
2 nov. 2005 à 17:28
C'est trivial si tu connais le nombre de lignes dans le fichier:
tail <nombre_lignes-10> fichier | head <nombre_lignes-20> 

apres on peut essayer de faire un script en utilisant: "wc -l" pour compter les lignes, par exempe:

NB_LIGNES=`wc -l`


En principe on peut combiner ca mais il faut faire attention pour les details avec la shell, ... (je n'ai pas envie pour ca, tu trouveras bien).

Il faudrait aussi faire un truc pour dire quand le fichier a moins de 20 lignes.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
bacchuss Messages postés 1162 Date d'inscription samedi 13 décembre 2003 Statut Membre Dernière intervention 6 avril 2009 190
3 nov. 2005 à 09:10
head -10 fic && tail -10 fic
0