• STATISTIQUES
  • Il y a eu un total de 4 membres et 6224 visiteurs sur le site dans les dernières 24h pour un total de 6 228 personnes!


    1 membre s'est inscrit dans les dernières 24h!


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


  • ANNUAIRE
  • [EN] Framework Metasploit
    Le Framework Metasploit est un logiciel gratuit, open source de tests de pénétration développ&ea...
    Vulnérabilités
    [FR] NewbieContest
    Nous vous proposons une série de challenges regroupant plusieurs domaines allant de l'exploitation de fail...
    Hacking
    [FR] Root-Me
    Notre équipe se base sur un constat : à l'heure actuelle ou l'information tend à devenir...
    Hacking
    [EN] Listbrain Version 3
    Site proposant 66 challenges présentés dans une liste mélangée.
    Challenges
    [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] apprendre-a-manipuler
    Site d'apprentissage de la manipulation d'autrui.
    Hacking
    [FR] Asp-php
    Tutoriaux sur ASP, PHP, ASP.net, XML, SQL, Javascript, HTML, VML - Scripts et ressources pour webmasters - Forums d&#...
    Programmation

  • 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: 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