Je suis en train de compresser des fichiers JavaScript et le compresseur se plaint que mes fichiers contiennent le caractère 
.
Comment puis-je rechercher ces personnages et les supprimer?
Perl -pi~ -CSD -e 's/^\x{fffe}//' file1.js path/to/file2.js
Je suppose que l'outil va casser si vous avez d'autres utf-8 dans vos fichiers, mais sinon, peut-être que cette solution de contournement peut vous aider. (Non testé ...)
Edit : ajout de l’option -CSD
, conformément au commentaire de tchrist.
Vous pouvez facilement les supprimer en utilisant vim, voici les étapes:
1) Dans votre terminal, ouvrez le fichier avec vim:
vim file_name
2) Supprimez tous les caractères BOM :
:set nobomb
3) Enregistrez le fichier:
:wq
Une autre méthode pour supprimer ces caractères - en utilisant Vim :
vim -b nom_fichier
Maintenant, ces caractères "cachés" sont visibles (<feff>
) et peuvent être supprimés.
Merci pour les réponses précédentes, voici une variante sed (1) au cas où:
sed '1s/^\xEF\xBB\xBF//'
Sous Unix/Linux:
sed 's/\xEF\xBB\xBF//' < inputfile > outputfile
Sur MacOSX
sed $'s/\xEF\xBB\xBF//' < inputfile > outputfile
Notez le $ after sed pour mac.
Sous Windows
Il existe Super Sed une version améliorée de sed. Pour Windows, il s'agit d'un fichier .exe autonome, destiné à être exécuté à partir de la ligne de commande.
Utiliser tail pourrait être plus facile:
tail --bytes=+4 filename > new_filename
La solution de @ tripleee n'a pas fonctionné pour moi. Mais changer le codage du fichier en ASCII et encore en UTF-8 a fait l'affaire:
J'ai utilisé vimgrep pour cela
:vim "[\uFEFF]" *
aussi commande de recherche vim normale
/[\uFEFF]
Dans Windows, vous pouvez utiliser l’utilitaire backported recode de UnxUtils .
Dans Sublime Text vous pouvez installer le paquet Surligneur puis personnaliser l'expression régulière dans vos paramètres utilisateur.
Ici, j'ai ajouté \uFEFF
à la fin de la propriété highlighter_regex
.
{
"highlighter_enabled": true,
"highlighter_regex": "(\t+ +)|( +\t+)|[\u2026\u2018\u2019\u201c\u201d\u2013\u2014\uFEFF]|[\t ]+$",
"highlighter_scope_name": "invalid",
"highlighter_max_file_size": 1048576,
"highlighter_delay": 3000
}
Pour écraser les paramètres du paquetage par défaut, placez le fichier ici:
~/.config/sublime-text-3/Packages/User/highlighter.sublime-settings
La commande 'fichier' indique si la nomenclature est présente:
Par exemple: 'fichier monfichier.xml' affiche: "Document XML 1.0, texte Unicode UTF-8 (avec nomenclature), lignes très longues, terminaisons de lignes CRLF"
dos2unix supprimera la nomenclature.
Enregistrez le fichier sans signature de code.
Je suggère l'utilisation de l'outil "dos2unix", veuillez tester pour exécuter dos2unix ./thefile.js
.
Si nécessaire, essayez d'utiliser quelque chose comme ceci pour plusieurs fichiers:
for x in $(find . -type f -exec echo {} +); do dos2unix $x ; done
Mes salutations.