В недавнем вопросе было отмечено, что на OSX запуск sed в файле не ascii дал странные результаты.Например, если вы это сделаете (/ usr / bin / cal - это случайный двоичный файл)
sed 's/[^A-Z]//' /usr/bin/cal
sed
удалит все печатные символы, кроме AZ, но многие непечатаемые символы останутся.Однако, если вы сделаете
LANG='' sed 's/[^A-Z]//' /usr/bin/cal
, только AZ (и переводы строки) будут выведены.Почему?
Обычно LANG=en-US.UTF-8
Что происходит?В любом случае я не вижу, чтобы вывод sed мог считаться правильным в UTF-8.Это сломано, или есть какое-то понятие работы, которое я не понимаю?
Я знаю, что OSX sed соответствует POSIX и поэтому отличается от любимого GNU sed.