Как мне удалить спецификацию из файла UTF-8?

Можно зарегистрироваться для получения уведомления, когда использование памяти контрольной группой превышает пороговое значение. В принципе, установка порога в подходящую точку ниже фактического лимита позволит вам послать сигнал или предпринять другие действия.

См .:

https://www.kernel.org/doc/Documentation/cgroup-v1/memory.txt

113
23.07.2017, 13:06
6 ответов

Если вы не уверены, содержит ли файл спецификацию UTF -8, тогда это (предполагает, что реализация GNUsed)удалит спецификацию, если она существует, или не внесет никаких изменений, если она не существует. т.

sed '1s/^\xEF\xBB\xBF//' < orig.txt > new.txt

Вы также можете перезаписать существующий файл с помощью опции -i:

sed -i '1s/^\xEF\xBB\xBF//' orig.txt

Если вы используете BSD-версию sed(, например macOS ), вам нужно, чтобы bash выполнял экранирование:

 sed $'1s/\xef\xbb\xbf//' < orig.txt > new.txt
126
20.08.2021, 11:35

Можно удалить спецификацию из файла с помощью команды tail:

tail -c +4 withBOM.txt > withoutBOM.txt

Имейте в виду, что при этом удаляются первые 4 байта из файла, поэтому перед запуском tailубедитесь, что файл действительно содержит спецификацию.

32
20.08.2021, 11:35

Спецификация не имеет смысла в UTF -8. Они обычно добавляются по ошибке фиктивным программным обеспечением в ОС Microsoft.

dos2unixудалит его, а также позаботится о других особенностях текстовых файлов Windows.

dos2unix test.xml
103
20.08.2021, 11:35

Недавно я нашел эту крошечную команду -линейный инструмент, который добавляет или удаляет спецификацию в произвольных файлах UTF -8 закодированных файлов:UTF BOM Utils(новая ссылка на github)

Небольшой недостаток: вы можете скачать только простой исходный код C++. Вы должны создать make-файл (с помощью CMake , например )и скомпилировать его самостоятельно, двоичные файлы на этой странице не представлены.

0
20.08.2021, 11:35

Для этого я использую лайнер vim one -на обычном:

vim --clean -c 'se nobomb|wq' filename

vim --clean -c 'bufdo se nobomb|wqa' filename1 filename2...
7
20.08.2021, 11:35

Я знаю, что это было давно, но поскольку у меня была немного другая проблема, я пишу, чтобы другие могли получить пользу.

В моем текстовом файле случайным образом преследовали символы \fe\ff, к счастью для меня, они появились в начале строк, а набор допустимых символов ограничен буквенно-цифровыми.

Приведенная ниже команда в vimвырезает первый не -буквенно-цифровой символ, но используйте ее с осторожностью, так как набор разрешенных символов может различаться.

:%s/^[^a-zA-Z0-9]//g
0
10.11.2021, 09:54

Теги

Похожие вопросы