• STATISTIQUES
  • Il y a eu un total de 4 membres et 6145 visiteurs sur le site dans les dernières 24h pour un total de 6 149 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
  • [FR] Zmaster
    Articles sur l'informatique, le hacking, le P2P, les divx, les astuces windows XP, les GSM, Emule, la cryptograph...
    Hacking
    [FR] Zenk-Security
    La communauté zenk-security a pour objet principal la sécurité informatique, nous sommes des tou...
    Hacking
    [EN] Packet Storm
    Packet Storm est un site qui combine nouvelles de la sécurité informatique, téléchargemen...
    Vulnérabilités
    [FR] Developpez.net
    Un forum communautaire qui se veut pour les développeurs en générale. Avec presque 500 000 membr...
    Programmation
    [FR] Root-Me
    Notre équipe se base sur un constat : à l'heure actuelle ou l'information tend à devenir...
    Hacking
    [EN] Astalavista
    Un site aux ressources incontournable depuis plusieurs années, Astalavista est réellement devenue un cl...
    Hacking
    [EN] CS Tutoring Center
    Site de challenge spécialisé dans les challenges de programmation C++ et java cependant, d'autres langages pe...
    Challenges

  • 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 : 2 visiteur(s)
N-PN
Accueil | Challenges | Tutoriels | Téléchargements | Forum | Retourner en haut