Je vais avoir des problèmes avec la commande sed:
J'aimerais remplacer dans une chaîne, une seule citation par deux guillemets simples
Voici ma chaîne:Conserver les espaces lorsque vous utilisez la commande sed dans le script KornShell
04CA07807800106109XE00187200000081960 NI 0780643442 178'0700
J'ai utilisé cette commande sed pour remplacer le guillemet simple:
line=`echo $line | sed "s/'/''/g"`
le résultat est
04CA07807800106109XE00187200000081960 NI 0780643442 178''0700
Comme vous pouvez le voir, le guillemet simple est correctement remplacé par deux guillemets simples.
Mais j'ai perdu tous les espaces entre chaque caractère de ma chaîne et j'ai vraiment besoin de les garder.
Existe-t-il un moyen de conserver ces espaces avec la commande sed?
J'ai essayé avec une commande tr et j'ai obtenu le même résultat.
Nous vous remercions de votre aide.
BTW, 'printf '% s \ n'" $ line "' est en fait un peu plus correct que 'echo" $ line "' (qui est lui-même beaucoup plus correct que 'echo $ line') pour traiter arbitrairement entrée - voir la section UTILISATION DE L'APPLICATION de http://pubs.opengroup.org/onlinepubs/009604599/utilities/echo.html –
... btw, http://shellcheck.net/ aurait trouvé ce bug pour vous sans avoir besoin d'impliquer les humains. –
Je n'étais au courant d'aucun de ces trucs. Dûment noté. Merci ! – Green