Je crois que sur OS X lorsque vous utilisez -i une extension pour les fichiers de sauvegarde est requise . Essayez :
sed -i .bak 's/hello/gbye/g' *
Utilisation de GNU sed
l'extension est facultative .
Si vous utilisez le -i
option, vous devez fournir une extension pour vos sauvegardes.
Si vous avez :
File1.txt
File2.cfg
La commande (notez le manque d'espace entre -i
et ''
et le -e
pour le faire fonctionner sur les nouvelles versions de Mac et sur GNU) :
sed -i'.original' -e 's/old_link/new_link/g' *
Créez 2 fichiers de sauvegarde comme :
File1.txt.original
File2.cfg.original
Il n'existe aucun moyen portable d'éviter de créer des fichiers de sauvegarde car il est impossible de trouver un mélange de commandes sed qui fonctionne dans tous les cas :
sed -i -e ...
- ne fonctionne pas sur OS X car il crée-e
sauvegardessed -i'' -e ...
- ne fonctionne pas sur OS X 10.6 mais fonctionne sur 10.9+sed -i '' -e ...
- ne fonctionne pas sous GNU
Remarque Étant donné qu'il n'y a pas de commande sed fonctionnant sur toutes les plates-formes, vous pouvez essayer d'utiliser une autre commande pour obtenir le même résultat.
Par exemple, perl -i -pe's/old_link/new_link/g' *