Maison > Article > développement back-end > Comment rechercher et supprimer les marques d'ordre d'octet (BOM) dans les fichiers UTF-8 ?
Une approche ingénieuse : localiser la nomenclature dans les fichiers UTF-8
La nécessité de parcourir un répertoire à la recherche de fichiers UTF-8 ornés de l'ordre des octets Les marques (BOM) apparaissent à des fins de débogage. Bien que les scripts shell offrent une solution simple, ils peuvent être confrontés à des imperfections telles que des lignes simples illisibles ou une sensibilité aux sauts de ligne dans les noms de fichiers.
Une solution raffinée
À la recherche d'une solution plus approche élégante, considérez cette commande succincte :
find . -type f -exec sed '1s/^\xEF\xBB\xBF//' -i {} \;
Cette commande exploite l'utilitaire « find » pour parcourir le répertoire spécifié. Les fichiers de type « f » (fichiers normaux) sont ensuite filtrés. Pour chaque fichier qualifiant, l'éditeur 'sed' est invoqué, exécutant une substitution sur la première ligne. La chaîne ^xEFxBBxBF commence par une séquence de contrôle signifiant le début d'une ligne et correspond aux trois caractères constituant le BOM : EF BB BF. En le remplaçant par une chaîne vide, la nomenclature est effectivement effacée.
Note de précaution
Les utilisateurs sont avertis que cette opération est destructrice. Les fichiers binaires contenant ces caractères seront modifiés. Pour vous protéger contre les modifications involontaires, utilisez plutôt cette commande :
grep -rl $'\xEF\xBB\xBF' .
Cette commande modifiée reste fidèle à la mission de 'grep de correspondance de modèles. Il conserve la capacité d'identifier les fichiers contenant des nomenclatures sans causer de dommages.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!