web-dev-qa-db-ja.com

ファイルに表示される<0xEF、0xBB、0xBF>文字。それらを削除する方法は?

JavaScriptファイルの圧縮を行っていますが、コンプレッサーが私のファイルに文字。

これらの文字を検索して削除するにはどうすればよいですか?

82
Quintin Par
Perl -pi~ -CSD -e 's/^\x{fffe}//' file1.js path/to/file2.js

ファイルに他のutf-8が含まれているとツールが壊れると思いますが、そうでない場合は、この回避策が役立つ可能性があります。 (未検証...)

編集:tchristのコメントに従って、-CSDオプションを追加しました。

17
tripleee

vimを使用して簡単に削除できます。手順は次のとおりです。

1)ターミナルで、vimを使用してファイルを開きます。

vim file_name

2)すべてを削除 [〜#〜] bom [〜#〜] 文字:

:set nobomb

3)ファイルを保存します。

:wq
174
Mohammad Anini

これらの文字を削除する別の方法-Vimを使用:

vim -b fileName

これらの「隠された」文字が表示されるようになりました(<feff>)削除できます。

26

これまでの回答に感謝します。念のため、sed(1)のバリアントを次に示します。

sed '1s/^\xEF\xBB\xBF//'
16

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であり、コマンドラインから実行するためのものです。

15
Masum

tailを使用すると簡単です。

tail --bytes=+4 filename > new_filename
5
Dzanvu

@tripleeeのソリューションは私にとってはうまくいきませんでした。しかし、ファイルのエンコーディングをASCIIに変更し、再度UTF-8に変更すると、トリックができました:-)

3

これにはvimgrepを使用しました

:vim "[\uFEFF]" *

通常のvim検索コマンドも

/[\uFEFF]
2
Olexiy Zamkoviy

Windowsでは、 nxUtils からのバックポートrecodeユーティリティを使用できます。

1

Sublime TextHighlighterパッケージ をインストールし、ユーザー設定で正規表現をカスタマイズできます。

ここで、\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

1
JJD

「file」コマンドは、BOMが存在するかどうかを示します。

たとえば、「file myfile.xml」と表示されます。「XML 1.0ドキュメント、UTF-8 Unicode(BOM付き)テキスト、非常に長い行、CRLF行終端記号付き」

dos2unixはBOMを削除します。

1
LittletonDoug

コード署名なしでファイルを保存します。

0
Masood Moshref

「dos2unix」ツールの使用をお勧めします。dos2unix ./thefile.js

必要に応じて、複数のファイルに対して次のようなものを使用してください。

for x in $(find . -type f -exec echo {} +); do dos2unix $x ; done

よろしく。

0
Wellington1993