Попробуйте эту команду GNU sed,
$ sed -r '/000/ s/^(.*)$/#\1/g' file
#This is a 000 line.
#This is 000 yet ano000ther line.
This is still yet another line.
Объяснение:
/000/
Подстановка sed работает только на линии, которая включает 000
, Как только он находит соответствующую строку, он добавляет #
символ перед ней. И через awk, функция
$ awk '/000/{gsub (/^/,"#")}1' file
#This is a 000 line.
#This is 000 yet ano000ther line.
This is still yet another line
gsub
используется для добавления #
перед строками, которые содержат 000
. Ошибка почти наверняка заключается в том, что ваш файл не в UTF-8, но вы правы, это действительно похоже на ошибку в отчете об ошибке.
Откройте файл eula вверх с BBEdit (или бесплатным TextWrangler) и посмотрите, какую кодировку он использует. Измените кодировку на UTF-8 и сохраните. Сравните два файла, чтобы увидеть, какие различия появились. Замените исходный файл новым (устраняя любые сбои).
Если это решит проблему, используйте Apple Bug Reporter , чтобы сообщить об ошибке в отчете об ошибке.
Наиболее вероятная причина того, что + stringWithContentsOfFile: encoding: error:
не сработает в этом случае, заключается в том, что вы указали неправильную кодировку. Вы уверены, что ваш файл @ "eula"
закодирован в UTF8?
Если вы не уверены в кодировке файла, вы всегда можете попробовать + stringWithContentsOfFile: usedEncoding: error:
и посмотрите, работает ли он и какую кодировку предлагает.
Я только что потратил 45 минут на решение этой проблемы, только в моем случае решение было глупым , а проблема несколько иная.
Это не первый случай, когда XCode волшебным образом кэширует вещи (неправильно), и у меня много часов потрачено впустую. Если у вас возникла такая ошибка, которая не имеет смысла, попробуйте удалить и заменить файлы и очистить все цели.
Не знаю, ваша ли проблема в этом, но у меня была похожая вещь (stringWithContentsOfFile, без JSON), и проблема заключалась в том, что файл имел концы строк CRLF (windows) и Как бы то ни было, западное кодирование. Я использовал SubEthaEdit для преобразования в LF и UTF-8, и все работает нормально.