Я подозреваю, что проблема заключается в том, что ваш файл filename.csv
содержит символы, отличные от ASCII (возможно, Unicode), и ваш sed
ожидает ASCII.
Первое, что нужно сделать, это проверить файл и посмотреть, действительно ли это так. Я думаю, вы можете сделать это с помощью:
cat -vet filename.csv
и вы, вероятно, увидите выделенные символы, которые не являются ASCII. В качестве альтернативы вы можете использовать iconv
, чтобы попытаться преобразовать его в ASCII и посмотреть, дает ли он ошибку, потому что там есть символы, отличные от ASCII.
Если есть не-ASCII символов есть (например, акценты и неанглийских символов и несколько раз смайликов, апострофы и кавычки), вы либо должны сказать sed
, что они есть, или удалить несчастными символы, если вам они действительно не нужны.
Чтобы посмотреть, что ожидается sed
, вам необходимо запустить locale
и вставить вывод в свой исходный вопрос, нажав edit
под ним. Тогда вам может понадобиться изменить свой язык, чтобы сделать sed
счастливее о Unicode, как я предложил в комментариях.
Надеюсь, что это поможет!
Ваша команда, как написано, отлично работает для меня. – John1024
Вам нужно будет добавить информацию о том, какую оболочку вы используете, какую систему вы используете и т. Д. Ваша команда работает для меня в нескольких разных системах. – Feneric
Эй, я использую bash и am на Mac Pro 2015. Спасибо! – HSB