Re: variable dans expression reguliere

Page principale

Répondre à ce message
Auteur: Patrick Dupre
Date:  
À: Bruno Cudini
CC: guilde Guilde
Sujet: Re: variable dans expression reguliere
On 16.06.2012 16:48, Bruno Cudini wrote:
> Salut la liste,
>
> On Sat, Jun 16, 2012 at 04:35:06PM +0200, Patrick Dupre wrote:
>> Bonjour,
>>
>> j'ai une expression (dans un fichier):
>> /home/user/filename
>>
>> Je fais:
>>
>> sed -ne 's/.*"$HOME"//p' fichier
>>
>> pour recuperer le "filename" sans la hierachie complete.
>> mais cela ne marche pas
>> alors que j'ai bien
>>
>> $HOME=/home/user
>>
>> Qu'est que je n'ai pas compris ?
>
> L'utilisation de quotes simples (') fait que rien ne sera interprété
> dans la chaîne. Il faudrait les remplacer par des doubles ("), et il
> n'est pas nécessaire de mettre $HOME entre quotes. Par contre, il
> peut
> être utile de délimiter le nom de la variable en écrivant ${HOME}, ce
> qui évite de chercher la variable $HOME.ssh par exemple (si $HOME
> contenait un / à la fin).
>
> Un autre problème est que d'utiliser des / dans ton expression sed va
> poser problème avec les noms de fichiers. Tu peux utiliser d'autres
> caractères à la place, perso j'utilise un # dès que j'ai à traiter
> des
> noms de fichiers :
>
>     sed -ne "s#.*${HOME}##p" fichier


Humm,

Si je fais:
sed -ne "s/.*${HOME}//p"

J'ai:
sed: -e expression #1, char 12: unknown option to `s'




-- 
======================================================================
  Patrick DUPRÉ                |   |  email: pdupre@???
======================================================================