Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2982 connectés 

  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  Sed et execution d'une commande

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Sed et execution d'une commande

n°947261
phdenis
Posté le 27-08-2007 à 12:53:59  profilanswer
 

Salut,
 
Je me pose une petite question existentielle ... est-il possible avec la commande sed d'éxecuter une commande à l'intérieur shell ...
 
En fait, je veux trouver toutes les lignes correspondantes à un motif ... J'ai le fichier suivant  
 
AAA_001
BBB_002
...
AAA_002
AAA_003
AAA_004
AAA_005
...
 
Et je souhaiterai imprimer juste à coté un numéro ... Donc j'avais pensé à l'expression réguliére :

Code :
  1. ^AAA_\(.*\)


 
Mais je me demande si il est possible d'executer une commande genre printf %03d $i  à la suite d'un sed...
 
Voici le type de résultat que je souheterais obtenir ...

Code :
  1. AAA_001 000
  2. BBB_002
  3. ...
  4. AAA_002 001
  5. AAA_003 002
  6. AAA_004 003
  7. AAA_005 004
  8. ...


 
Est-ce possible de faire cela avec un sed ou pas ?

mood
Publicité
Posté le 27-08-2007 à 12:53:59  profilanswer
 

n°947271
franceso
Posté le 27-08-2007 à 13:42:27  profilanswer
 

je ne connais pas assez sed pour pouvoir répondre à ta question. Mais sinon, voici une solution en perl :

perl -ne 'chomp; print; printf "%03d", $i++ if /^AAA_.*/; print "\n";'


 
Je suis sûr qu'il y aurait une manière plus simple d'écrire ça, mais là je vois pas... :sweat:


---------------
TriScale innov
n°947275
wedgeant
Da penguin inside
Posté le 27-08-2007 à 13:48:00  profilanswer
 

[:cerveau huit] ta soluce Franceso ;)
 
Il me semble que sed ne permet pas ce genre de fantaisies ... awk à la limite, mais en perl c'est [:cerveau atsuko]
 

Spoiler :

t'aurais quand même pu faire un peu d'obfuscate [:cerveau cupra]


---------------
Wedge#2487 @HS -#- PW: +∞ -#- Khaz-Modan/Boltiz @WoW
n°947279
franceso
Posté le 27-08-2007 à 14:01:06  profilanswer
 

wedgeant a écrit :

[:cerveau huit] ta soluce Franceso ;)
 
Il me semble que sed ne permet pas ce genre de fantaisies ... awk à la limite, mais en perl c'est [:cerveau atsuko]
 

Spoiler :

t'aurais quand même pu faire un peu d'obfuscate [:cerveau cupra]



Et que penses-tu de ça ? C'est plus court mais peut-être un peu plus dur à lire...  :whistle:  

perl -pne 's/$/${\(sprintf ("%03d", $i++))}/ if /^AAA_.*/;'

Message cité 1 fois
Message édité par franceso le 27-08-2007 à 14:12:22

---------------
TriScale innov
n°947282
wedgeant
Da penguin inside
Posté le 27-08-2007 à 14:06:44  profilanswer
 

franceso a écrit :


Et que penses-tu de ça ? C'est plus court mais peut-être un peu plus dur à lire...  :whistle:  

perl -pne 'if (/^AAA_.*/){ s/$/${\(sprintf "%03d", $i++)}/};'



[:cerveau love]    
 
[:cerveau star]


---------------
Wedge#2487 @HS -#- PW: +∞ -#- Khaz-Modan/Boltiz @WoW
n°947375
phdenis
Posté le 27-08-2007 à 17:12:35  profilanswer
 


 
Merci à tous, ben ma question était aussi de savoir si on pouvait executer une commande dans un sed ... en résumé, je pense que cela n'est pas faisable en gros ... dommage mais merci quand même à tous pour vos réponses :)
 
En awk, on doit pouvoir faire un truc aussi ... ;)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  Sed et execution d'une commande

 

Sujets relatifs
Problème d'extinction via commande haltProblème avec une ligne de commande (redirection qui ne marche pas)
Nagios + commande "check_disk_smb"Etat d'avancement d'une commande
[Debian/Packages] Exécution des programmes en tant que rootUnix la commande Kill
[SVN] Exécution locale des fichiers du depotScript de démarrage init.d: Unable to chdir avec la commande screen
traitement d'un fichier de retour d'email d'erreur avec SEDCalcul de date avec la commande `date`...
Plus de sujets relatifs à : Sed et execution d'une commande


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR