2

各行に ABC123 などの部分文字列が含まれる大きなファイルがあります。私が実行すると

grep ABC file.txt

また

grep ABC1 file.txt

これらの行は期待どおりに返されますが、実行すると

grep ABC12 file.txt

grep は対応する行を見つけることができません。

これはかなり些細な機能に思えますが、私は grep のヘビー ユーザーではないので、おそらく落とし穴がいくつかあります。

4

5 に答える 5

5

次のようなものを使用します

od -x -a < filename

ファイルの内容を16進数でダンプします。それはあなたがあなたのファイルに持っているものがあなたが期待するものであるかどうかをすぐにあなたに示します。私はそれがそうではないと思う:-)

注:odここで役立つオプションがたくさんあります。実際、リストするには多すぎます。

于 2009-04-25T16:03:58.333 に答える
3

ファイルに0x00などの隠し文字が含まれている可能性はありますか?

于 2009-04-25T15:50:31.517 に答える
0

行にABC123が含まれている場合は、「grepABC12」がそれらを取得する必要があります。ABC1、ABC2、ABC3など、いくつかの異なる文字列を照合したいということですか?その場合、これを試すことができます:

grep -E 'ABC1|ABC2|ABC3'
于 2009-04-25T15:48:59.430 に答える
0

問題が何であるかわかりません..正しくgrep機能します..たとえば、テストファイルの内容は次のとおりです。

$ cat file.txt
ABC
ABC1
ABC12
ABC123

..そしてABC、ABC1、ABC12、ABC123のgrep'ing:

$ grep ABC file.txt 
ABC
ABC1
ABC12
ABC123
$ grep ABC1 file.txt 
ABC1
ABC12
ABC123
$ grep ABC12 file.txt 
ABC12
ABC123
$ grep ABC123 file.txt 
ABC123

grep基本的にはフィルターであり、最初の引数(ABC、またはABC1など)を含む行が表示されます。文字列全体が含まれていない場合、表示されません

于 2009-04-25T15:50:16.947 に答える
0

これは意味がありません。ファイルに「ABC123」が含まれていますか?

これを確認するには、シェルで次のコマンドを実行します

echo "ABC123" | grep ABC12
于 2009-04-25T15:47:11.323 に答える