«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как эффективно найти файлы UTF-8 с префиксом BOM: усовершенствованный подход

Как эффективно найти файлы UTF-8 с префиксом BOM: усовершенствованный подход

Опубликовано 14 ноября 2024 г.
Просматривать:961

How to Efficiently Locate BOM-Prefixed UTF-8 Files: A Refined Approach

Более элегантный подход к поиску файлов UTF-8 с префиксом спецификации

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

Начиная с исходной команды, мы используем find для рекурсивного обхода каталога, фильтрации файлов и передачи их имен в цикл while. Внутри цикла head извлекает первые три байта каждого файла и сравнивает их с ожидаемой последовательностью спецификации ($'\xef\xbb\xbf'). Файлы, соответствующие этому условию, затем выделяются.

Одним потенциальным недостатком этого подхода является его уязвимость к разрывам строк в именах файлов. Чтобы обойти эту проблему, мы представляем альтернативную команду, которая не только находит файлы с префиксом BOM, но и удаляет их:

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

Эта команда использует sed для замены последовательности спецификации пустой строкой в ​​первой строке каждого соответствующий файл. Однако обратите внимание, что это действие приведет к изменению любых двоичных файлов, содержащих эти символы.

Для тех, кто ищет неразрушающий подход, мы рекомендуем следующую команду:

grep -rl $'\xEF\xBB\xBF' .

Эта команда использует grep для поиска и вывода списка файлов, содержащих последовательность спецификации, без изменения их содержимого.

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

Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3