Удалите всю системную функцию с командой sed

У меня есть cpp файл, я хочу удалить всю системную функцию в этом cpp файле с командой sed, например,

int a;
cin>>a;
system(a);
system("dadad");
system('dad');

Я хочу удалить всю системную функцию в вышеупомянутом коде, там любой способ, которым я могу решить эту проблему с командой sed

0
задан 15 October 2016 в 09:42

1 ответ

Это могло быть сложно, но все Ваши примеры показывают одну команду на строку с system команда, запускающаяся в начале строки. В этом случае это относительно просто. Вот три метода:

Используя grep:

$ grep -v '^system(' file.cpp
int a;
cin>>a;

regex ^system( строки соответствий, которые начинаются system(. -v опция говорит grep удалять строки то соответствие.

Используя sed:

$ sed '/^system(/d' file.cpp
int a;
cin>>a;

d команда говорит sed удалить любую строку, которая соответствует regex ^system(.

Используя awk:

$ awk '!/^system\(/' file.cpp
int a;
cin>>a;

В awk, ! отрицание и !/^system\(/ печать любая строка, которая не соответствует regex ^system\(. (В отличие от этого, для форм по умолчанию grep и sed, ( regex-активное в awk, и мы должны выйти из него с обратной косой чертой для соответствия фактическому (.)

1
ответ дан 28 September 2019 в 09:49

Другие вопросы по тегам:

Похожие вопросы: