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


    Membres: 2 605
    Discussions: 3 580
    Messages: 32 820
    Tutoriels: 78
    Téléchargements: 38
    Sites dans l'annuaire: 58


  • ANNUAIRE
  • [EN] Lost-chall
    Site de challenge présenté sous la forme de différente saison. Pour passer une saison vous devez avoir accumulÃ...
    Challenges
    [EN] Gekko
    Site de challenge présenter sous la forme d'une quête. Vous êtes un agent secret qui répond sous le nom...
    Challenges
    [FR] Developpez.net
    Un forum communautaire qui se veut pour les développeurs en générale. Avec presque 500 000 membr...
    Programmation
    [EN] SecurityFocus
    SecurityFocus a été conçu pour faciliter la discussion sur des sujets liés la sécu...
    Vulnérabilités
    [FR] Microcontest
    Cryptographie: 7, Mathématiques: 8, Image Son Vidéo: 5, Intelligence artificielle: 3, Réseau: 2, Divers: 7, Phy...
    Challenges
    [FR] InfoMirmo
    Apprentissage de l'informatique par l'intermédiaire de challenges de sécurité. Venez app...
    Hacking
    [FR] dcode
    dcode.fr est le site indispensable pour décoder des messages, tricher aux jeux de lettres, résoudre des énigmes...
    Outils / Add-on

  • 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 Hors ligne
Éleveur d'ornithorynques
*******



Messages : 1,610
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 Hors ligne
Éleveur d'ornithorynques
*******



Messages : 1,610
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: 271
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 : 1 visiteur(s)
N-PN
Accueil | Challenges | Tutoriels | Téléchargements | Forum | Retourner en haut