основной grep - PullRequest
       10

основной grep

2 голосов
/ 25 апреля 2009

У меня есть большой файл, где каждая строка содержит подстроку, такую ​​как ABC123. Если я выполню

grep ABC file.txt

или

grep ABC1 file.txt

Я получаю эти строки обратно, как и ожидалось, но если я выполню

grep ABC12 file.txt

grep не может найти соответствующие строки.

Это кажется довольно тривиальной функциональностью, но я не большой пользователь grep, так что, возможно, мне не хватает некоторой ошибки.

Ответы [ 5 ]

5 голосов
/ 25 апреля 2009

Используйте что-то вроде

od -x -a < filename

чтобы вывести содержимое файла в шестнадцатеричном виде. Это сразу покажет вам, есть ли у вас в файле то, что вы ожидаете. Что я подозреваю, что это не так: -)

Примечание: od имеет много полезных опций, чтобы помочь вам здесь. На самом деле, слишком много, чтобы перечислять.

3 голосов
/ 25 апреля 2009

Есть ли вероятность, что ваш файл содержит какой-то скрытый символ, например 0x00?

0 голосов
/ 25 апреля 2009

Если строки содержат ABC123, их должен получить «grep ABC12». Возможно, вы имеете в виду, что хотите сопоставить несколько разных строк, таких как ABC1, ABC2 и ABC3? В этом случае вы можете попробовать это:

grep -E 'ABC1|ABC2|ABC3'
0 голосов
/ 25 апреля 2009

Я не уверен, в чем проблема .. grep работает точно так, как и должно .. Например, содержимое моего тестового файла:

$ cat file.txt
ABC
ABC1
ABC12
ABC123

.. и grep'ing для ABC, ABC1, ABC12, ABC123:

$ 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 и т. Д.). Если он не содержит всю строку, он не будет отображаться

0 голосов
/ 25 апреля 2009

Это не имеет смысла. Вы уверены, что файл содержит «ABC123»?

Вы можете убедиться в этом, выполнив следующую команду в оболочке

echo "ABC123" | grep ABC12
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...