grep
будет возвращать строки в файле, которые соответствуют определенному шаблону:Как я могу изменить определение «строка» в grep?
grep pattern file
Поищет через файл и вернуть все строки, соответствующие шаблону .
Моего базовый код имеет много заявлений многоканальных, такие как:
int x = somefunc(a,
b,
10,
someclass(10),
foo,
bar);
я хочу, чтобы иметь возможность grep
мой файл и вернуть все заявления, а не только линию. Например, если я хочу, чтобы все вызовы somefunc
, которые используют foo
, я мог бы сделать:
grep -e 'somefunc.*foo' filename
и получить весь вызов функции, которую я могу трубы в другую программу для дальнейшей обработки:
grep -e 'somefunc.*foo' filename | grep -v bar
По существу, я хочу сообщить grep
, что мои линии заканчиваются ;
, а не с EOL
.
Я не могу использовать переключатели -C
, -A
или -B
, так как я не всегда знаю, сколько строк будет в инструкции. Например, приведенный выше пример можно записать в виде:
int x = somefunc(a, b,
10, someclass(10),
foo, bar);
Есть ли способ сделать это с помощью grep
или любого другого общего инструмента?
Привет, Натан, не могли бы вы принять любой из следующих ответов, наиболее подходящих для вашего требования? –
Я попробовал их, но ни один из них не был действительно удовлетворительным –