Programmation linux tcsh

ashark2211 -  
 ashark2211 -
Bonjour,

Travaillant dans un environnement tcsh, j'ai un soucis dans l'assignation d'un retour echo dans une variable.
Concrètement, la commande suivant dans un script
'
echo $1 | sed 's/\(.*\)\.[^\.]\+$/\1.LOG/'
'
me donne le nom du fichier passer en paramètre avec l'extension .LOG à la place de celle d'origine.
Le problème se pose lorsque je veux stocker cela dans une variable :
'
set NomFic = (echo $1 | sed 's/\(.*\)\.[^\.]\+$/\1.LOG/')
echo $NomFic
'
ne donne rien et
'
set NomFic = $(echo $1 | sed 's/\(.*\)\.[^\.]\+$/\1.LOG/')
echo $NomFic
'
me sort : "Nom de variable incorrect"

Merci pour l'aide...
Configuration: Linux Suse
Firefox 2.0.0.14

1 réponse

  1. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 659
     
    hello
    essayer la commande entre back quotes
    set NomFic = `echo $1 | sed 's/\(.*\)\.[^\.]\+$/\1.LOG/'` 
    0
    1. ashark2211
       
      Hello

      Nikel ca marche merci!

      J'ai trouve une autre solution avec à la place de l'utilisation de sed :

      $1:t:r pour recupérer le nom racine du fichier.

      Merci encore

      Bonne journee
      0