JavaScriptファイルの圧縮を行っていますが、コンプレッサーが私のファイルに
文字。
これらの文字を検索して削除するにはどうすればよいですか?
Perl -pi~ -CSD -e 's/^\x{fffe}//' file1.js path/to/file2.js
ファイルに他のutf-8が含まれているとツールが壊れると思いますが、そうでない場合は、この回避策が役立つ可能性があります。 (未検証...)
編集:tchristのコメントに従って、-CSD
オプションを追加しました。
vimを使用して簡単に削除できます。手順は次のとおりです。
1)ターミナルで、vimを使用してファイルを開きます。
vim file_name
2)すべてを削除 [〜#〜] bom [〜#〜] 文字:
:set nobomb
3)ファイルを保存します。
:wq
これらの文字を削除する別の方法-Vimを使用:
vim -b fileName
これらの「隠された」文字が表示されるようになりました(<feff>
)削除できます。
これまでの回答に感謝します。念のため、sed(1)のバリアントを次に示します。
sed '1s/^\xEF\xBB\xBF//'
Unix/Linuxの場合:
sed 's/\xEF\xBB\xBF//' < inputfile > outputfile
MacOSXで
sed $'s/\xEF\xBB\xBF//' < inputfile > outputfile
Mac用のsedの後の$に注意してください。
Windowsの場合
Super Sed sedの拡張バージョンがあります。 Windowsの場合、これはスタンドアロンの.exeであり、コマンドラインから実行するためのものです。
tailを使用すると簡単です。
tail --bytes=+4 filename > new_filename
@tripleeeのソリューションは私にとってはうまくいきませんでした。しかし、ファイルのエンコーディングをASCIIに変更し、再度UTF-8に変更すると、トリックができました:-)
これにはvimgrepを使用しました
:vim "[\uFEFF]" *
通常のvim検索コマンドも
/[\uFEFF]
Windowsでは、 nxUtils からのバックポートrecodeユーティリティを使用できます。
Sublime Text で Highlighterパッケージ をインストールし、ユーザー設定で正規表現をカスタマイズできます。
ここで、\uFEFF
プロパティの最後に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
}
デフォルトのパッケージ設定を上書きするには、ファイルをここに配置します。
〜/ .config/sublime-text-3/Packages/User/highlighter.sublime-settings
「file」コマンドは、BOMが存在するかどうかを示します。
たとえば、「file myfile.xml」と表示されます。「XML 1.0ドキュメント、UTF-8 Unicode(BOM付き)テキスト、非常に長い行、CRLF行終端記号付き」
dos2unixはBOMを削除します。
コード署名なしでファイルを保存します。
「dos2unix」ツールの使用をお勧めします。dos2unix ./thefile.js
。
必要に応じて、複数のファイルに対して次のようなものを使用してください。
for x in $(find . -type f -exec echo {} +); do dos2unix $x ; done
よろしく。