Basé sur les réponses utiles que j'ai reçues here, j'ai créé le script suivant, l'a nommé convert_image_paths.command, l'ai placé dans un dossier de site Web sur mon mac et l'ai double-cliqué dessus.Je me suis fait défoncer par mon script sed - pourquoi?
#!/bin/bash
# This script will operate on valid relative image paths at this level and one sub-level down, across .html and .css files.
find . -name "*.css" -o -name "*.html" -exec sed -i '' 's/\.\.\/images\//images\//g' {} ';'
find . -name "*.css" -o -name "*.html" -exec sed -i '' 's/images\//http:\/\/mycdn\.com\/images\//g' {} ';'
Malheureusement, au lieu de changer les chemins relatifs dans le site vers la nouvelle URL cdn, il
- dédoublée l'url: http://mycdn.com/http://mycdn.com/images/myimage.png
- Est-ce que pour chaque fichier html/css sur ma machine
Donc ma question est a) y a-t-il une balise pour crétin et b) comment réparer ce script?
EDIT:
Permettez-moi de préciser mon intention: Je voulais appliquer la modification à tous les chemins d'image avec urls par rapport sous la forme
"image/{myimagepath}"
ou
"../images/{myimagepath}"
Et c'est pourquoi vous testez avec -e et utilisez seulement -i quand vous savez que cela fonctionne. – Sorpigal
N'a vraiment rien à voir avec '-e'. Il suffit de le lancer sans '-i' d'abord; C'est l'option qui dit à sed d'éditer les fichiers en place au lieu d'imprimer le résultat sur stdout. '-e' dit à sed que l'argument suivant est une commande sed à exécuter. 'sed -e' est complètement équivalent à 'sed '; C'est surtout utile pour exécuter plusieurs commandes. –
Cascabel