• STATISTIQUES
  • Il y a eu un total de 2 membres et 13101 visiteurs sur le site dans les dernières 24h pour un total de 13 103 personnes!


    Membres: 2 433
    Discussions: 3 585
    Messages: 32 832
    Tutoriels: 78
    Téléchargements: 38
    Sites dans l'annuaire: 58


  • ANNUAIRE
  • [EN] Security Traps
    Site de challenge qui prétend être construit non pas dans le but de parfaire vos connaissances, mais plutôt dan...
    Challenges
    [FR] InfoMirmo
    Apprentissage de l'informatique par l'intermédiaire de challenges de sécurité. Venez app...
    Hacking
    [EN] Framework Metasploit
    Le Framework Metasploit est un logiciel gratuit, open source de tests de pénétration développ&ea...
    Vulnérabilités
    [EN] osix
    Site de challenge qui utilise un système de level on chaque épreuve doit être réussie avant d'accédÃ...
    Challenges
    [FR] µContest
    µContest est un site de challenges de programmation, c'est à dire qu'il propose des épreu...
    Hacking
    [FR] Developpez.net
    Un forum communautaire qui se veut pour les développeurs en générale. Avec presque 500 000 membr...
    Programmation
    [FR] Cyber-Hacker
    CH - Cyber Hacker est un jeu par navigateur de simulation de hack, programmez et envoyez vos virus et piratez les aut...
    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
sed golf
03-06-2016, 17h40
Message : #1
supersnail En ligne
Éleveur d'ornithorynques
*******



Messages : 1,614
Sujets : 72
Points: 466
Inscription : Jan 2012
sed golf
Bonjour à tous,

Pour essayer de réanimer un peu le forum (qui se meurt légèrement ces temps-ci, hélas), je propose un petit jeu: le but est d'utiliser la commande UNIX "sed" pour passer d'une entrée donnée à une sortie donnée.

Je me lance donc, et le but sera de passer de l'entrée:

Code :
; ces lignes sont à supprimer
; blblblblbl
; the game

toto
titi
tutu

lolilol
the game

à

Code :
+toto
titi
tutu

+lolilol
the game
.

A vos claviers Big Grin
Mon blog

Code :
push esp ; dec eax ; inc ebp ; and [edi+0x41],al ; dec ebp ; inc ebp

"VIM est merveilleux" © supersnail
+1 (3) -1 (0) Répondre
03-06-2016, 18h50 (Modification du message : 03-06-2016, 18h51 par ark.)
Message : #2
ark Hors ligne
Psyckomodo!
*****



Messages : 1,033
Sujets : 48
Points: 317
Inscription : Sep 2011
RE: sed golf
Well, here is my solution:

[spoiler]
Code BASH :

$> cat input.txt
; ces lignes sont à supprimer
; blblblblbl
; the game

toto
titi
tutu

lolilol
the game
$>  sed  '{/^;.*/d;/^$/{n;s/^\(.*\)$/+\1/}}' input.txt

+toto
titi
tutu

+lolilol
the game
 

[/spoiler]

Merci pour ce jeu :p
+1 (1) -1 (0) Répondre
03-06-2016, 18h58 (Modification du message : 04-06-2016, 08h15 par Atlas.)
Message : #3
Atlas Hors ligne
Membre actif
*



Messages : 69
Sujets : 7
Points: 3
Inscription : Aug 2012
RE: sed golf
Voici ma solution bien que pas terrible :
[spoiler]
Code :
sed -e '/^;/d' -e  's/toto/+toto/' -e '1,1d' -e 's/lolilol/+lolilol/' file
[/spoiler]

merci pour l'exercice Smile

Edit : d'accord je vais chercher une autre solution alors !

Edit : Voilà ma solution finale : [spoiler]
Code :
sed  '/^;/d;/^$/{N;s/\n/\n+/}' file
[/spoiler]
+1 (1) -1 (0) Répondre
03-06-2016, 19h01
Message : #4
supersnail En ligne
Éleveur d'ornithorynques
*******



Messages : 1,614
Sujets : 72
Points: 466
Inscription : Jan 2012
RE: sed golf
@Atlas: le principe est de coller un "+" devant la première ligne suivant une ligne vide (la solution fonctionne sur l'exemple donné, mais n'est absolument pas générique :])

Pour situer le contexte, je voulais éviter de me faire ch*er à gérer à la main les fichiers de collisions IDA lors de la création de signature, du coup j'ai dû bricoler un script sed, et l'idée m'est venue de faire un petit golf à partir de ça :þ
Mon blog

Code :
push esp ; dec eax ; inc ebp ; and [edi+0x41],al ; dec ebp ; inc ebp

"VIM est merveilleux" © supersnail
+1 (1) -1 (0) Répondre
03-06-2016, 19h28 (Modification du message : 03-06-2016, 19h30 par notfound.)
Message : #5
notfound Hors ligne
#!/usr/bin/env bash
*



Messages : 687
Sujets : 47
Points: 272
Inscription : Sep 2012
RE: sed golf
Bon, il me manque un \n ... Je poste et j'update quand j'ai trouvé !

[spoiler]
Code :
>>> sed '/^;.*/d;/^$/{N;s/.*\n/+/}' game
+toto
titi
tutu
+lolilol
the game
[/spoiler]
+1 (1) -1 (0) Répondre
16-06-2016, 07h50
Message : #6
gruik Hors ligne
gouteur de savon
*



Messages : 757
Sujets : 44
Points: 482
Inscription : Oct 2012
RE: sed golf
coucou,

un peu à la bourre mais j'y vais de ma solution :
[spoiler]
Code :
sed '/^;/d;/^$/{n;s/.*/+&/}'
[/spoiler]
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 (1) -1 (0) Répondre


Atteindre :


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