Вхождение, которое вы хотите, не является вторым вхождением; это третий.  Чтобы получить третье вхождение -c с тремя строками контекста:
$ man sh | awk '/-c/{n++; if (n==3)f=3;} f{print;f--;}'
           -c               Read commands from the command_string operand instead of from the standard input.  Special param‐
                            eter 0 will be set from the command_name operand and the positional parameters ($1, $2, etc.)
                            set from the remaining argument operands.
Как это устроено
awk неявно читает свои входные данные построчно.  Этот скрипт использует две переменные. n отслеживает, сколько раз мы видели -c . f отслеживает, сколько строк мы должны напечатать.
- /-c/{n++; if (n==3)f=3;}
 - Если мы достигаем строки, содержащей - -c, то увеличиваем число- nна единицу.  Если- nравно трем, тогда установите- fв три.
 
- f{print;f--;}
 - Если - fненулевое, выведите строку и уменьшите- f.
 
Альтернативное решение
$ man sh | grep -A3 -m3 -- -c | tail -n4
           -c               Read commands from the command_string operand instead of from the standard input.  Special param‐
                            eter 0 will be set from the command_name operand and the positional parameters ($1, $2, etc.)
                            set from the remaining argument operands.
Опция -m3 сообщает grep, что нужно возвращать только первые три совпадения. tail -n4 возвращает последние четыре строки из этих совпадений.  Однако, если второе и третье совпадения с -c были в пределах количества строк контекста, этот вывод может быть не тем, что вы хотите.