sed выдает ошибку "Недопустимая последовательность байтов" при попытке заменить символ

Я использую "Терминал" в Mac OS X 10.10 (Yosemite) и пытаюсь удалить все вхождения a из файла, используя sed:

sed 's/a//g' file

Что дает мне следующую ошибку:

sed: RE error: illegal byte sequence

sed 's/a//' file работает без проблем. Ошибка появляется, когда я добавляю g модификатор регулярного выражения.

1 ответ

Вам нужно добавить -i вместе с двумя пустыми ''. Так это будет выглядеть так:sed -i '' 's/a//g' filename.txt

Объяснение заключается в том, что -i равно на месте (сохраните его обратно в исходный файл)

Другие вопросы по тегам