GNU/Linux >> Tutoriels Linux >  >> Linux

Barre oblique et barre oblique inverse dans Sed ?

Cette question a déjà des réponses ici :De quels caractères ai-je besoin pour échapper lorsque j'utilise sed dans un script sh ?

(4 réponses)
Fermé il y a 5 ans.

Je veux utiliser sed pour changer une barre oblique en une barre oblique inverse et une barre oblique, c'est-à-dire / -> / . Mais cela ne fonctionne pas. Voici un petit exemple :

#!/bin/bash
TEST=/etc/hallo
echo $TEST
echo $TEST | sed "s/hallo/bello/g"
echo $TEST | sed "s///\//g"

La sortie des trois premières lignes est telle que supposée. Mais le dernier ne fonctionne pas. Pourquoi? Comment corriger la dernière partie ?

Réponse acceptée :

Utilisez des guillemets simples pour l'expression que vous avez utilisée :

sed 's///\//g'

Entre guillemets doubles, a une signification particulière, vous devez donc l'inverser :

sed "s///\\//g"

Mais c'est plus propre de changer le délimiteur :

sed 's=/=\/=g'
sed "s=/=\/=g"

Linux
  1. Quelle est la différence entre $(stuff) et `stuff` ?

  2. Comment remplacer une chaîne par une chaîne contenant une barre oblique avec Sed ?

  3. ${!foo} Et Zsh ?

  4. Ajouter et ajouter une chaîne à chaque élément de $* dans le shell ?

  5. Script Shell avec fonction et paramètre comme variables ?

La commande Linux Sed :utilisation et exemples

Manipuler du texte avec sed et grep

16 exemples pratiques et utiles de la commande Echo sous Linux

Comment utiliser Sed pour rechercher et remplacer une chaîne dans un fichier

sed avec une chaîne littérale - pas un fichier d'entrée

Restauration de stdout et stderr à la valeur par défaut