2015-12-10 2 views
0

Я нашел команду найти документы в моих универсальных папках и каталогах, которые являются utf-8 с спецификацией, а затем удалить спецификацию. Но, похоже, это не работает на моем компьютере (osx) ... Должен ли я сначала установить moodle на свою машину, чтобы запустить его в моей командной строке?Почему команда, используемая для удаления спецификации, не работает?

Ниже команда:

find . -type f -exec sed 's/^\xEF\xBB\xBF//' -i.bak {} \; -exec rm {}.bak \;

В результате я получил это sed: -i.bak: No such file or directory и все содержимое в файлы, которые, кажется, очень странно.

Благодарим за помощь!

+0

Что не работает? Каков результат? –

+0

Только что обновил вопрос. Спасибо!! – Penny

ответ

2

Команда, которую вы нашли, предназначалась для сериала GNU, который поддерживает необязательные аргументы в любом месте. Хуже всего то, что команда OS X не поддерживает последовательности байтов без ASCII.

Вместо этого для OS X использовать следующий ответ, который использует Perl: https://stackoverflow.com/a/9101056/1554386

связывая его в находке выглядит следующим образом:

find . -type f -exec perl -e 's/\xef\xbb\xbf//;' -pi.bak {} \; 

Вы можете добавить -exec rm {}.bak \; из вашей команды, если вы хотите, но вы можете так же легко сделать это отдельно

+0

Спасибо, Аластер. Это очень помогает! Я буду использовать его в будущем! :) – Penny

+0

Np. BTW, убедитесь, что вы продвигаете и принимаете вопросы, если они работают на вас. Люди чаще реагируют, если они думают, что вы вознаградите их за ответ. –

+0

Ой, я думал, что уже проголосовал за тебя. Так что просто проголосовали. Еще раз спасибо! – Penny

 Смежные вопросы

  • Нет связанных вопросов^_^