Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 29/01/2007, à 19:29

maxim

[bash]enlever des lignes à un fichier texte

Un autre problème pour débutant:
comment puis-je enlever les 2 dernieres lignes d'un fichier texte en bash?


æâ€êþÿûîœô~øäßë‘’ðüïŀö´`«»© ↓¬¿×÷¡Æ¢ÊÞÞŸŸÛÎŒÔ˚ØÄ„Ë‚¥ÐÜÏĿÖÙ
⋅∕…→↑←Ŀ™Èɲ˘—–————‑È™ÇÀ≠±¸¸⇙⇓⇘⇐⇔⇒⇖⇑⇗⇕¯“”®←↑→…⋅∕−

Hors ligne

#2 Le 29/01/2007, à 19:41

bobousse

Re : [bash]enlever des lignes à un fichier texte

renseigne toi sur head, tail et wc....

Hors ligne

#3 Le 29/01/2007, à 19:51

maxim

Re : [bash]enlever des lignes à un fichier texte

Je ne trouve pas comment effacer la fin d'un fichier avec tail alors un peu d'aide concrète (avec example) m'aiderai beaucoup, merci.


æâ€êþÿûîœô~øäßë‘’ðüïŀö´`«»© ↓¬¿×÷¡Æ¢ÊÞÞŸŸÛÎŒÔ˚ØÄ„Ë‚¥ÐÜÏĿÖÙ
⋅∕…→↑←Ŀ™Èɲ˘—–————‑È™ÇÀ≠±¸¸⇙⇓⇘⇐⇔⇒⇖⇑⇗⇕¯“”®←↑→…⋅∕−

Hors ligne

#4 Le 29/01/2007, à 20:00

bobousse

Re : [bash]enlever des lignes à un fichier texte

il faut d'abord compter le nombre de lignes qu'il y a dans ton fichier

wc -l tonfichier.txt

ensuite tu fais tu affiches les n première lignes moins les deux dernières

head -n le nombre de ligne - 2

je suis désolé j'ai pas le temps de t'expliquer plus je pars la si tu trouves pas je t'expliquerais mieux plus tard...

Hors ligne

#5 Le 29/01/2007, à 20:03

maxim

Re : [bash]enlever des lignes à un fichier texte

Ah, là j'ai pas assez de connaissances en bash... Alors, je reviendrais demain soir sur le forum.
Merci...


æâ€êþÿûîœô~øäßë‘’ðüïŀö´`«»© ↓¬¿×÷¡Æ¢ÊÞÞŸŸÛÎŒÔ˚ØÄ„Ë‚¥ÐÜÏĿÖÙ
⋅∕…→↑←Ŀ™Èɲ˘—–————‑È™ÇÀ≠±¸¸⇙⇓⇘⇐⇔⇒⇖⇑⇗⇕¯“”®←↑→…⋅∕−

Hors ligne

#6 Le 29/01/2007, à 20:29

tolto

Re : [bash]enlever des lignes à un fichier texte

en gros un truc du style

ligne=`wc -l Monfichier.txt | cut -f1 -d ' '`
lignet=$((ligne-2))
cat Monfichier.txt | head -n $lignet > Monfichier.txt

#7 Le 30/01/2007, à 03:50

any

Re : [bash]enlever des lignes à un fichier texte

une autre facon de le faire

cat $1 | head -n $((`cat $1|awk '{} END {print NR }'`-2)) > $1

#8 Le 30/01/2007, à 04:22

phavet

Re : [bash]enlever des lignes à un fichier texte

Bonsoir

Encore plus facile :

head -n -2 fichier.txt  > fichier.txt

cool

C'est en relisant le man que j'ai trouvé l'astuce.
Comme quoi, revenir aux fondamentaux peut toujours servir.
lol

Dernière modification par phavet (Le 30/01/2007, à 09:32)


Faire et défaire c'est toujours travailler.
Tour assemblée, Asus F3Sc, Acer Aspire 5715z, Asus 1201HA ; Karmic (1) , Lucid (2), Natty(1)

Hors ligne

#9 Le 30/01/2007, à 12:23

any

Re : [bash]enlever des lignes à un fichier texte

lol rien a dire phavet , t'es le plus fort wink!
sur ce j'ai plus qu'a relire mes man smile et finir l'install de mon rtlinux

#10 Le 30/01/2007, à 15:11

maxim

Re : [bash]enlever des lignes à un fichier texte

Merci tout le monde!
Mais j'ai une autre question:
Comment fait on pour créer un fichier vide en ligne de commande (dans lequel on pourrait mettre du texte)?


æâ€êþÿûîœô~øäßë‘’ðüïŀö´`«»© ↓¬¿×÷¡Æ¢ÊÞÞŸŸÛÎŒÔ˚ØÄ„Ë‚¥ÐÜÏĿÖÙ
⋅∕…→↑←Ŀ™Èɲ˘—–————‑È™ÇÀ≠±¸¸⇙⇓⇘⇐⇔⇒⇖⇑⇗⇕¯“”®←↑→…⋅∕−

Hors ligne

#11 Le 30/01/2007, à 15:27

LinC2ok

Re : [bash]enlever des lignes à un fichier texte

Bonjour maxim,

Pour crééer un fichier vide:

touch nomFihier

Hors ligne

#12 Le 09/02/2007, à 09:55

phavet

Re : [bash]enlever des lignes à un fichier texte

! Attention !
touch Truc ne créera le fichier Truc que si celui-ci n'existe pas.
Dans le cas contraire, touch changera la date de modification du fichier sans changer son contenu.
C'est pratique pour faire les recompilations de programme.

Pour créer un fichier vide il faut taper : >Truc
! Danger ! si Truc existe, il sera écrasé sans rémission !

Il y a toujours moyen de voir si un fichier existe, est vide , ...
Voir man test

Bonne continuation


Faire et défaire c'est toujours travailler.
Tour assemblée, Asus F3Sc, Acer Aspire 5715z, Asus 1201HA ; Karmic (1) , Lucid (2), Natty(1)

Hors ligne