Cmt effacer les 3 DERNIERES ligne d'1 fichier
Résolu
DevilSpike
Messages postés
13
Date d'inscription
Statut
Membre
Dernière intervention
-
DevilSpike Messages postés 13 Date d'inscription Statut Membre Dernière intervention -
DevilSpike Messages postés 13 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
je dois écrire un script et ça allait bien jusqu'au moment où je devais effacer les 3 dernières lignes d'un fichier
Je suis sous ubuntu 7.10 et j'utilise le bash
voilà un cat mon_fichier(qui s'appelle tmp3) :
jpg
JPG
jpg
JPG
py
jpg
pgm
jpg
pdf
gif
sh
sh~
py
py~
`-- tmp3
2 directories, 17 files
je voudrais enlever les lignes que j'ai mis en gras (3 lignes en comptant le "blanc")
j'ai bien trouvé la commande
sed '$d' mon_fichier.txt
mais ça n'efface que la dernière ligne et je n'arrive pas à la modifier pour effacer les 3 dernières
Sinon, j'ai pensé aussi que je pouvais inverser l'ordre des lignes ! car à défaut d'effacer les " dernières , si je peux effacer les 3 premières!
mais je ne connait que la commande "sort" mais elle trie avant d'inverser !!
je dois écrire un script et ça allait bien jusqu'au moment où je devais effacer les 3 dernières lignes d'un fichier
Je suis sous ubuntu 7.10 et j'utilise le bash
voilà un cat mon_fichier(qui s'appelle tmp3) :
jpg
JPG
jpg
JPG
py
jpg
pgm
jpg
gif
sh
sh~
py
py~
`-- tmp3
2 directories, 17 files
je voudrais enlever les lignes que j'ai mis en gras (3 lignes en comptant le "blanc")
j'ai bien trouvé la commande
sed '$d' mon_fichier.txt
mais ça n'efface que la dernière ligne et je n'arrive pas à la modifier pour effacer les 3 dernières
Sinon, j'ai pensé aussi que je pouvais inverser l'ordre des lignes ! car à défaut d'effacer les " dernières , si je peux effacer les 3 premières!
mais je ne connait que la commande "sort" mais elle trie avant d'inverser !!
A voir également:
- Cmt effacer les 3 DERNIERES ligne d'1 fichier
- Fichier bin - Guide
- Fichier epub - Guide
- Fichier rar - Guide
- Comment réduire la taille d'un fichier - Guide
- Fichier .dat - Guide
3 réponses
Sinon tu peux faire avec "tac" (le contraire de cat) :
tac fichier | sed '1,3d' | tac;-))
perl -e '@tout=<>;$fin = @tout>=3 ? @tout-4 : 0; print @tout[0..$fin]' monfichier.txt
J'ai fait un test avec monfichier.txt :
jpg JPG jpg JPG py jpg pgm jpg pdf gif sh sh~ py py~
et le résultat est :
$ perl -e '@tout=<>;$fin = @tout>=3 ? @tout-4 : 0; print @tout[0..$fin]' monfichier.txt jpg JPG jpg JPG py jpg pgm jpg pdf gif sh
Raph