#1 Le 29/01/2007, à 18: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, à 18:41
- bobousse
Re : [bash]enlever des lignes à un fichier texte
renseigne toi sur head, tail et wc....
Hors ligne
#3 Le 29/01/2007, à 18: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, à 19: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, à 19: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, à 19: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, à 02: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, à 03:22
- phavet
Re : [bash]enlever des lignes à un fichier texte
Bonsoir
Encore plus facile :
head -n -2 fichier.txt > fichier.txt
C'est en relisant le man que j'ai trouvé l'astuce.
Comme quoi, revenir aux fondamentaux peut toujours servir.
Dernière modification par phavet (Le 30/01/2007, à 08: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, à 11:23
- any
Re : [bash]enlever des lignes à un fichier texte
lol rien a dire phavet , t'es le plus fort !
sur ce j'ai plus qu'a relire mes man et finir l'install de mon rtlinux
#10 Le 30/01/2007, à 14: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, à 14: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, à 08: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