Je veux être capable d'utiliser sed pour prendre une entrée telle que :
C:\Windows\Folder\File.txt
à
C:/Windows/Folder/File.txt
Je veux être capable d'utiliser sed pour prendre une entrée telle que :
C:\Windows\Folder\File.txt
à
C:/Windows/Folder/File.txt
Si votre texte se trouve dans une variable Bash, la substitution de paramètres est possible. ${var//\\//}
peut remplacer les sous-chaînes :
$ p='C:\foo\bar.xml'
$ printf '%s\n' "$p"
C:\foo\bar.xml
$ printf '%s\n' "${p//\\//}"
C:/foo/bar.xml
Cela peut être plus simple et plus clair que le filtrage par une commande telle que tr
o sed
.
$ echo "C:\Windows\Folder\File.txt" | sed -e 's/\\/\//g'
C:/Windows/Folder/File.txt
La commande sed dans ce cas est 's/OLD_TEXT/NEW_TEXT/g'
.
Le "s" initial indique simplement qu'il faut rechercher le texte ancien et le remplacer par le texte nouveau.
Le "g" de fin de ligne indique simplement qu'il faut remplacer toutes les occurrences sur une ligne donnée, et pas seulement la première.
Et bien sûr, vous devez séparer le "s", le "g", l'ancien et le nouveau. C'est là que vous devez utiliser des barres obliques comme séparateurs.
Pour votre cas OLD_TEXT == '\'
y NEW_TEXT == '/'
. Mais vous ne pouvez pas vous contenter de taper des slashs en vous attendant à ce que les choses soient fonctionnent comme prévu être pris au pied de la lettre tout en les utilisant en même temps comme séparateurs. En général, les barres obliques sont assez spéciales et doivent être traitées comme telles. Ils doivent être "échappés" (c'est-à-dire précédés) par une barre oblique inverse.
Donc pour toi, OLD_TEXT == '\\'
y NEW_TEXT == '\/'
. En les plaçant à l'intérieur du 's/OLD_TEXT/NEW_TEXT/g'
paradigme que vous obtenez's/\\/\//g'
. Cela se lit comme suit
' s
/ \\
/ \/
/ g
et après les échappatoires, c'est
' s
/ \
/ /
/ g
' qui remplacera toutes les barres obliques inverses par des barres obliques avant.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.