[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Récupérer le résultat d'une commande sed dans une variable ou un fichier : problème...



> $ TRUC=$(cat monfichier)
> $ RES=$(sed '/^abc\|^$/! { p; s|^|  -> '"${DOMAIN}"'|g }'  "$TRUC")



> sed: can't read
> abc-----
> foo
> bar
> 
> abc-----
> baz
> : No such file or directory:
> 
> 
> Idem avec :
> $ sed '/^abc\|^$/! { p; s|^|  -> '"${DOMAIN}"'|g }'  "$TRUC"
> 
> 
> ***
> Je me dis donc qu'il faut donner à sed l'argument qu'il attend : cad un nom de fichier.
> Or, ce n'est pas le cas car je lui donne la valeur d'une variable. 
> Et il me répond qu'il cherche à ouvrir un fichier qui n'existe pas "No such file or directory".

> Finalement, j'ai tenté d'utiliser un pipe ET CA MARCHE !!!
> RES=$(echo "$TRUC" | sed '/^abc\|^$/! { p; s|^|  -> '"${DOMAIN}"'|g }')

ben ... ok j'étais loin de m'imaginer que tu voulais vraiment filer le
contenu d'une variable comme argument de sed mais oui en reprenant tes
mails: c'était bien noté :(

sed (comme beaucoup de filtres) une liste de fichiers a traiter en
argument (ou alors stdin par defaut)

au passage du coup:

TRUC=$( cat monfichier )
RES=$(echo "$TRUC" | sed '/^abc\|^$/! { p; s|^|  -> '"${DOMAIN}"'|g }')

s'écrit en fait

sed '/^abc\|^$/! { p; s|^|  -> '"${DOMAIN}"'|g }' monfichier

ou si tu veux utiliser les redirections pour avoir le nom du fichier
devant (c'est plus simple à la relecture)

< monfichier sed '/^abc\|^$/! { p; s|^|  -> '"${DOMAIN}"'|g }'

-- 
Marc Chantreux
Direction du numérique de l'Université de Strasbourg
Pôle de Calcul et Services Avancés à la Recherche (CESAR)
http://annuaire.unistra.fr/p/20200


Reply to: