ファイルをクリーンアップする必要があります。ファイルでエスケープ文字(0x1B)が原因で失敗するxmlパーサーが実行されています。 vimを使用してファイル内のその文字がどこにあるかを検索して削除するにはどうすればよいですか?
ファイルの例:
<?php
echo "Hello, world.\n";
?>
変換後:
0000000: 0a3c 3f70 6870 0a65 6368 6f20 2248 656c .<?php.echo "Hel
0000010: 6c6f 2c20 776f 726c 642e 5c6e 223b 0a3f lo, world.\n";.?
0000020: 3e0a
だから私は文字を削除します:(この例では、 'H')
0000000: 0a3c 3f70 6870 0a65 6368 6f20 22 656c .<?php.echo "Hel
0000010: 6c6f 2c20 776f 726c 642e 5c6e 223b 0a3f lo, world.\n";.?
0000020: 3e0a
最初の行の幅が十分ではなくなっていることに注意してください。元に戻すと、次のようになります。
^@<?php
echo "el^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@>
検索(例: /) ために \%x1b
。
制御文字(エスケープを含む)をコマンドラインに入力することもできます。 Ctrl-V。だからタイプ /、 Ctrl-V、 Esc、 Enter。
[escape] :%!xxd
を実行して、vimを16進エディターに変換します。次に、0x1B(/1B
)を検索します。
カーソルを置いてga
を押すと、文字の16進数の値がわかります。
以下に、文字の16進値が表示されます。 <╬>
文字の例
<╬> <| N> 206、Hex ce、Oct 316、Digr I>
削除してください:
%s/\%xce//g