Rechercher : dans
Par :

Supprimer les dernières lignes d'un fichier

Dernière réponse le 20 mar 2009 à 13:55:55 Absolu206, le 20 mar 2009 à 11:22:27 
 Signaler ce message aux modérateurs

Bonjour,



J'ai besoin de supprimer les 7 dernières lignes d'un fichier dont je ne connais pas le nombre de lignes.
J'ai essayer de le faire avec un sed et un head mais ça ne me donne pas le résultat que je veux obtenir.

Quelqu'un a-t-il une solution?

Merci d'avance

Configuration: Windows XP
Internet Explorer 6.0

Meilleures réponses pour « supprimer les dernières lignes d'un fichier » dans :
Sed - Supprimer une ou plusieurs lignes d'un fichier VoirSupprimer une (ou plusieurs) ligne(s) d'un fichier Syntaxe sed '{[/]||[/]}d' sed '{[/][,][/]d' /.../ = délimiteurs n = le numéro de ligne chaîne = la chaîne contenue dans la...
[Windows] Impossible de supprimer un fichier ou un dossier VoirSi Windows n'arrive pas à supprimer un fichier ou un dossier, la cause peut être l'une des suivantes : Le fichier ou le dossier à supprimer est utilisé par un processus du système Le dossier à supprimer contient des fichiers ou dossiers cachés ...

1

jipicy, le 20 mar 2009 à 11:25:11

Salut,

tac fichier | sed '1,7d' | tac
;-))
$ man woman
Il n'y a pas de page de manuel pour woman.

Répondre à jipicy

2

Absolu206, le 20 mar 2009 à 11:27:56

Je précise que je suis sur solaris 5.8

Répondre à Absolu206

3

jipicy, le 20 mar 2009 à 11:30:21

Et "tac" n'est pas en natif ?

Sinon, voir SED - Effacer les n dernières lignes
$ man woman
Il n'y a pas de page de manuel pour woman.

Répondre à jipicy

4

Absolu206, le 20 mar 2009 à 11:47:58

Tac et seq introuvable

Répondre à Absolu206

5

jipicy, le 20 mar 2009 à 11:48:48

Essaye ça alors :

 sed  -n -e :s -e '1,6{N;bs}' -e '7,${N;P;D}' fichier
$ man woman
Il n'y a pas de page de manuel pour woman.

Répondre à jipicy

6

Absolu206, le 20 mar 2009 à 11:50:06

Et en plus, Libellé trop long : :s;1,3{N;bs};4,${N;P;D}

Répondre à Absolu206

7

Absolu206, le 20 mar 2009 à 11:51:54

Sed : commande incohérente : 7,${N;P;D}.

Répondre à Absolu206

8

jipicy, le 20 mar 2009 à 11:57:57

jp@MDK:~/tmpfs ssh$ cat fichier
Ligne 1
Ligne 2
Ligne 3
Ligne 4
Ligne 5
Ligne 6
Ligne 7
Ligne 8
Ligne 9
Ligne 10
Ligne 11
Ligne 12
Ligne 13
Ligne 14
Ligne 15
Ligne 16
Ligne 17
Ligne 18
Ligne 19
Ligne 20
jp@MDK:~/tmpfs ssh$ nbrl=$(cat fichier | wc -l)
jp@MDK:~/tmpfs ssh$ sept=$(( $nbrl - 6 ))
jp@MDK:~/tmpfs ssh$ sed "${sept},${nbrl}d" fichier
Ligne 1
Ligne 2
Ligne 3
Ligne 4
Ligne 5
Ligne 6
Ligne 7
Ligne 8
Ligne 9
Ligne 10
Ligne 11
Ligne 12
Ligne 13
jp@MDK:~/tmpfs ssh$
Après je sais plus ;-))
$ man woman
Il n'y a pas de page de manuel pour woman.

Répondre à jipicy

9

Absolu206, le 20 mar 2009 à 12:10:14

Merci de ton aide mais la commande ne sed ne passe pas.
Voilà ce que j'ai : sed : commande incohérente : 32, 38d

Répondre à Absolu206

10

jipicy, le 20 mar 2009 à 13:22:02

Si tu la tapes tel quel dans un terminal, ça donne quoi :

sed '32,38d' fichier
essaie aussi :
sed '32, 38d' fichier
$ man woman
Il n'y a pas de page de manuel pour woman.

Répondre à jipicy

11

Absolu206, le 20 mar 2009 à 13:28:04

ça me donne le bon résultat.

Sinon j'ai quelque chose qui marche:

n=`grep -c ^ fichier`
head -n `expr $n - 7` fichier

Répondre à Absolu206

12

jipicy, le 20 mar 2009 à 13:30:32

Ben voilà ;-))
$ man woman
Il n'y a pas de page de manuel pour woman.

Répondre à jipicy

13

Absolu206, le 20 mar 2009 à 13:42:47

Je ne comprends plus rien ma méthode ne fonctionne plus :(

Répondre à Absolu206

14

 Absolu206, le 20 mar 2009 à 13:55:55

Bon ben cette fois si c'est bon la méthode fonctionne bien

Répondre à Absolu206
Collection CommentÇaMarche.net