Question pour un champion
mikbrank
-
bacchuss Messages postés 1165 Statut Membre -
bacchuss Messages postés 1165 Statut Membre -
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.
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 -
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. -
-
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 ?
-
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.
-
-
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -