Я запускаю diff
с опцией -p
, поэтому на выходе будет указано имя функции, в которой произошло каждое изменение. Есть ли аналогичная опция для grep
? Если нет, какую другую команду я мог бы использовать вместо этого?
Вместо -B
, чтобы показать фиксированное количество строк контекста, которые непосредственно предшествуют совпадению, мне хотелось бы, чтобы для совпадения предшествовала только одна строка с самой последней сигнатурой функции, однако многие строки назад были в файл. Если параметр, который я ищу, был -p
, вывод может выглядеть так, например:
$ cat foo.c int func1(int x, int y) { return x + y; } int func2(int x, int y, int z) { int tmp = x + y; tmp *= z; return tmp; } $ grep -p -n -e 'return' foo.c 1-int func1(int x, int y) 3: return x + y; -- 5-int func2(int x, int y, int z) 9: return tmp;