• STATISTIQUES
  • Il y a eu un total de 0 membres et 32045 visiteurs sur le site dans les dernières 24h pour un total de 32 045 personnes!
    Membres: 2 605
    Discussions: 3 579
    Messages: 32 816
    Tutoriels: 78
    Téléchargements: 38
    Sites dans l'annuaire: 58


  • ANNUAIRE
  • [FR] Forum-Webmaster
    Une communauté webmaster pour apporter / recevoir de l'aide en création de site internet. Webmaster...
    Webmaster
    [FR] NewbieContest
    Nous vous proposons une série de challenges regroupant plusieurs domaines allant de l'exploitation de fail...
    Hacking
    [FR] Newbie Contest
    Crackme: 35, Cryptographie: 49, Hacking: 27, Javascript/Java: 17, Logique: 31, Programmation: 23, Stéganographie: 53
    Challenges
    [EN] SecurityFocus
    SecurityFocus a été conçu pour faciliter la discussion sur des sujets liés la sécu...
    Vulnérabilités
    [EN] Dare your mind
    JavaScript: 6, Crypto: 44, Stegano: 36, Logic: 13, Special: 27, Science: 11, Realistic: 7, Programming: 10, Crack It: 6,...
    Challenges
    [EN] Exploit-db
    Une base de données d'exploits triés par genre (GHDB, Remote, Local, Web, DOS, ShellCode) à ...
    Vulnérabilités
    [EN] wechall
    Pour les gens n'étant pas familiers avec les sites de challenges, un site de challenges est un site propos...
    Hacking

  • DONATION
  • Si vous avez trouvé ce site internet utile, nous vous invitons à nous faire un don du montant de votre choix via Paypal. Ce don servira à financer notre hébergement.

    MERCI!




Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
effacer toutes les lignes sauf les 10 dernieres sans détruire le fichier
24-10-2013, 10h33
Message : #1
gruik Hors ligne
gouteur de savon
*



Messages : 757
Sujets : 44
Points: 482
Inscription : Oct 2012
effacer toutes les lignes sauf les 10 dernieres sans détruire le fichier
j'ai hésité à poster dans les challenges de la communauté, en tous cas j'ai pas de solution pour le moment donc je suis preneur Smile

on a un fichier de log, le but donc c'est de ne garder que les 10 dernieres lignes et effacer tout le reste, le tout sans opération destructive c'est à dire que si j'avais un tail -f sur mon fichier il doit pouvoir continuer de fonctionner, aka "inplace"
Avant donc que d'écrire, apprenez à penser.
Selon que notre idée est plus ou moins obscure, l'expression la suit, ou moins nette, ou plus pure.
Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément.
(Nicolas Boileau, L'Art poétique)
+1 (0) -1 (1) Répondre
24-10-2013, 14h06
Message : #2
levur Hors ligne
Membre
*



Messages : 27
Sujets : 3
Points: 10
Inscription : Sep 2013
RE: effacer toutes les lignes sauf les 10 dernieres sans détruire le fichier
et si tu fais une redirection en boucle du style :
Citation :tail 10 -f le_log >> le_log
ou ça constitue une destruction de ton fichier ?

ou encore tu stocke dans une var les 10 last ligne puis tu les insert dans ton fichier le tout avec un awk ?

je saisi pas trop la != entre 'opération destructive' et 'effacer tout le reste' Huh
Citation :Staline a hérité d'une Russie à la charrue, et l'a laissée avec l'arme atomique,
L'histoire n'oublie pas de telles personnes...
Churchill 1959 Chambre des Communes
+1 (1) -1 (0) Répondre
24-10-2013, 20h56
Message : #3
gruik Hors ligne
gouteur de savon
*



Messages : 757
Sujets : 44
Points: 482
Inscription : Oct 2012
RE: effacer toutes les lignes sauf les 10 dernieres sans détruire le fichier
(24-10-2013, 14h06)levur a écrit : tail 10 -f le_log >> le_log

wat ? non.

non de toutes façons c'est moi qui n'étais pas réveillé ce matin et racontais passablement n'importe quoi

en fait je pensais à quelque chose du genre
Code :
sed -i 1,$((`wc -l < fichier` - 10))d fichier
pour le coup on a bien un delete inplace mais c'est justement ce qu'on ne veut pas et qui casse le tail -f

la solution est simple, pas se casser la tête :
Code :
echo "$(tail -n10 fichier)" > fichier

fin de l'histoire
Avant donc que d'écrire, apprenez à penser.
Selon que notre idée est plus ou moins obscure, l'expression la suit, ou moins nette, ou plus pure.
Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément.
(Nicolas Boileau, L'Art poétique)
+1 (2) -1 (1) Répondre
24-10-2013, 21h26
Message : #4
b0fh Hors ligne
Membre actif
*



Messages : 210
Sujets : 17
Points: 309
Inscription : Jul 2012
RE: effacer toutes les lignes sauf les 10 dernieres sans détruire le fichier
La solution avec echo va foirer lamentablement passé une certaine taille (limitation de la taille max des arguments a une commande)

Ca fait lance run message d'erreur à tail, mais techniquement, pour effacer les n dernières lignes d'un fichier en préservant le reste, l'approche correcte est de faire un truncate, soit avec la commande idoine, soit avec dd:

Code :
truncate -s $((`wc -c <"$fichier"` - `tail -n $lignes |wc -c` )) "$fichier"

Code :
dd if=/dev/null bs=1 of="$fichier" seek=$((`wc -c <"$fichier"` - `tail -n $lignes |wc -c` ))
+1 (1) -1 (0) Répondre


Atteindre :


Utilisateur(s) parcourant ce sujet : 1 visiteur(s)
N-PN
Accueil | Challenges | Tutoriels | Téléchargements | Forum | Retourner en haut