RE erreur: illégal séquence d'octets sur Mac OS X

Je suis en train de remplacer une chaîne de caractères dans un fichier Makefile sur Mac OS X pour la cross-compilation pour iOS. La chaîne a incorporé des guillemets doubles. La commande est:

sed -i "" 's|"iphoneos-cross","llvm-gcc:-O3|"iphoneos-cross","clang:-Os|g' Configure

Et l'erreur est:

sed: RE error: illegal byte sequence

J'ai essayé d'échapper les guillemets doubles, des virgules, des tirets, et les deux-points avec pas de joie. Par exemple:

sed -i "" 's|\"iphoneos-cross\"\,\"llvm-gcc\:\-O3|\"iphoneos-cross\"\,\"clang\:\-Os|g' Configure

Je vais avoir un diable de temps à déboguer le problème. Quelqu'un sait-il comment obtenir sed pour imprimer la position de l'illégal séquence d'octets? Ou personne ne sait ce que le illégales séquence d'octets est?

  • Illégale séquence d'octets sonne comme quelque chose que vous obtenez lors de l'alimentation 8-bit ascii à quelque chose qui s'attend à utf-8.
  • Pouvez-vous essayer: LC_CTYPE=C && LANG=C && sed command
  • Merci les gens. Sa a été le LANG chose. Soupir....
  • Quelqu'un sais comment faire pour déterminer le début de la séquence est marquée comme invalide? sed -v provoqué une erreur dans la commande, et le man pages n'est pas de discuter de la question.
  • Quelqu'un peut-il m'éclairer comment la ligne de commande peut être valable, avec cet argument vide après la -i?
  • BSD sed (également utilisée sur OS X) exige -i '' (séparée, vide-option de chaîne d'argument) pour la mise à jour sans un fichier de sauvegarde; avec GNU sed, seulement -i par lui-même fonctionne - voir stackoverflow.com/a/40777793/45375
  • Plus un pour le LANG chose. Bon sang, c'est obscur, non évidente et étonnamment difficile de la recherche.

InformationsquelleAutor jww | 2013-10-08