5

私の Web アプリは、いくつかの奇妙な出力を表示しています (そこにあってはならない Unicode 文字など)。私が推測できる最善の方法は、どういうわけかソースのどこかに悪い文字を導入したことですが、どこにあるのかわかりません。

次のようなことができると述べているこの回答を見つけました。

grep -obUaP "<\x-hex pattern>" .

Unicode char をブラウザーからBless 16 進エディターにコピーすると、char の正確なバイト数は次のようになります。

15 03 01 EF BF BD 02 02

<\xhex pattern>必要な正確なバイトに一致するようにフォーマットするにはどうすればよいですか。私は試した:

grep -obUaP "<\x-15 03 01 EF BF BD 02 02>" .

しかし、それはうまくいきません。考え?

4

2 に答える 2

5

投稿をもう一度確認してください。FrOsT は、実際の grep コマンドに「<」と「>」を含めていません。彼は例のステートメントを囲むためにカラットのみを使用しました. 彼の実際の発言は次のようになります。

"\x01\x02"

いいえ:

"<\x01\x02>"

私のコンピューターには、次の行で始まる C ソース ファイルがあります。

#include <stdio.h>

私が走るとき

grep -obUaP '\x69\x6E\x63\x6C\x75\x64\x65' io.c

私は得る

1:include

つまり、行番号の後にパターンに一致する文字列のみが続きます。

あなたは実行したいかもしれません

man grep

これらすべてのオプションが何を意味するかを調べます。

于 2014-05-16T13:19:56.010 に答える