Si j'ai une chaîne: p>
Je m'attends à ce que la sortie soit comme celle-ci: p>
J'ai besoin de remplacer chemin1 = / chemin / moi et vous / fichier.json & path2 = / chemin / vous et moi / file.txt code> p> p>
chemin1 = / chemin / me & vous / fichier.json; chemin2 = / chemin / You & Me / File.txt Code> P> P> P>
& code> que c'est avant et arrière non contenant espace code>, j'ai essayé avec SED p >
chemin1 = / chemin / moi; vous / fichier.json; chemin2 = / chemin / vous; me / fichier.txt code> p>
3 Réponses :
Vous pouvez utiliser Ceci trouve une séquence de trois caractères de Ceci affectera [^] code> pour correspondre à un caractère non-espace et assurez-vous qu'il est dans un \ (Capture Group \) code> afin que vous puissiez le faire référence dans le String de remplacement: non-espace code> & code> non-espace code> et Remplace les deux caractères capturés, remplaçant efficacement tout & code> sans espace à côté de celui-ci. p> foo & bar code> mais pas foo & bar code> ou foo & bar code> ou & foo code> p> p> p>
L'attente de l'OP serait la suivante: SED -E 'S / \ ([^] \) & \ ([^] \) / \ 1; \ 2 /' code>. Vous avez peut-être oublié le point-virgule entre les deux.
sed -r 's/(\S)&(\S)/\1;\2/g' Where -r enable regex and \S is all except spaces.
Je suppose que vous recherchez peut-être que vous recherchez
sed 's/&\([a-z][a-z0-9]*=\)/;\1/g'
Essayez-vous réellement d'analyser les paramètres de requête URL?
Votre question devrait vraiment inclure le script
sed code> que vous avez essayé et vous expliquer peut-être votre pensée derrière elle.