Как правильно вернуть контекст из grep gnuwin32 (grep в windows cmd)?

242
Some_Guy

Я хочу вернуть строку контекста после строки, которую я ищу согласно grep --help

Context control: -B, --before-context=NUM print NUM lines of leading context -A, --after-context=NUM print NUM lines of trailing context -C, --context=NUM print NUM lines of output context 

Тем не мение,

 grep -a1 string1 file.txt- 

дает мне контекст до и после (то же самое с b1)

 grep -a 1 string1 file.txt 

ищет "1" в файле "string1"

и, просто чтобы сделать вещи страннее,

 grep -c1 string1 file.txt 

ничего не дает мне вообще

заранее спасибо всем, кто может помочь :)

0
Используете ли вы заглавные буквы для `-A1` или строчные буквы? `-a` и` -A` - это разные флаги, я бы подумал, что строчные буквы всегда будут искать 1 в файле с именем `string1` Eric Renouf 9 лет назад 2
фантастика. Иногда это простые вещи :) Some_Guy 9 лет назад 0
Интересно, почему a1 работает вместо C 1, хотя ... Some_Guy 9 лет назад 1
Возможно, потому что Windows, в отличие от большинства * nixes, нечувствительна к регистру. Я думал, что это была только вещь файловой системы, но, очевидно, это не так. terdon 9 лет назад 0

1 ответ на вопрос

0
Atafar

Пожалуйста, обратите внимание, что для утилит GNU (и вообще) регистр используемых опций командной строки имеет значение. Пытаться

grep -C1 string1 file.txt

вместо. Обратите внимание на заглавную 'C'!

Кстати, -cфлаг ' ' означает количество . Вместо того, чтобы показывать все отдельные случаи, он просто показывает общее количество строк, в которых встречается строка в ваших файлах.