При поиске кода для строк я постоянно сталкиваюсь с проблемой получения бессмысленных результатов без контекста.Например, если вызов функции разделен на 3 строки, и я ищу имя параметра, я получаю параметр в строке отдельно, а не имя функции.
Например, вфайл, содержащий
...
someFunctionCall ("test",
MY_CONSTANT,
(some *really) - long / expression);
grepping для MY_CONSTANT, вернет строку, которая выглядит следующим образом:
MY_CONSTANT,
Аналогично, в блоке комментария:
/////////////////////////////////////////
// FIXMESOON, do..while is the wrong choice here, because
// it makes the wrong thing happen
/////////////////////////////////////////
Greppingдля FIXMESOON дает очень разочаровывающий ответ:
// FIXMESOON, do..while is the wrong choice here, because
Когда тысячи обращений, результаты в одной строке немного бессмысленны.Я хотел бы, чтобы grep знал о начальной и конечной точках строк исходного кода, что-то столь же простое, как если бы он рассмотрел ";"хорошим началом будет разделитель строк.
Бонусные баллы, если вы можете заставить его вернуть весь блок комментария, если попадание находится внутри комментария.
Я знаю, что вы не можете этого сделатьс одним grep.Я также знаю о возможности, чтобы grep возвращал определенное количество строк контекста.Любые предложения о том, как сделать под Linux?К вашему сведению, я предпочитаю языки C и Perl.
Я уверен, что мог бы написать что-нибудь, но я знаю, что кто-то, должно быть, уже сделал это.
Спасибо!