2011-06-04 4 views
0

J'ai des valeurs dans un fichier comme ceci 'value-to-remove' (sans les 'caractères'). Je veux utiliser sed pour parcourir le fichier et remplacer les valeurs , y compris l'espace avant et après. Je cours cela via un script bash. Comment puis-je faire cela?comment trouver la valeur de remplacement avec des espaces en utilisant sed dans un script bash

La commande sed que j'utilise à l'heure actuelle remplace les valeurs mais laisse derrière les deux espaces.

sed -i 's/ '$value'//g' test.conf 

dans le script J'ai

sed -i -e 's/\s'$DOMAIN'-'$SITE'\s/\s/g' gitosis.conf 

comme écho

sed -i -e s/\sffff.com-eeee\s/\s/g test.conf 

ne fonctionne pas bien.

+0

btw, vous devriez montrer votre entrée et la sortie désirée. – jm666

Répondre

1

à mon humble avis de votre sed ne sait pas '\' s, utilisez donc [ \t] et utiliser des guillemets doubles, sinon vos variables ne s'étendra pas. par exemple:

sed -i -e "s/[ \t]'$DOMAIN'-'$SITE'[ \t]/ /g" gitosis.conf 
0

Laissez-moi savoir si cela est ce que vous avez besoin

echo 'Some values to remove value-to-remove and more' | sed -e 's/\svalue-to-remove\s/CHANGED/g' 

sortie: Some values to removeCHANGEDand more

+0

cela ne semble pas fonctionner dans mon script bash :-( – darren

+0

s'il vous plaît voir mise à jour à la question ci-dessus. – darren

Questions connexes