У меня есть cpp файл, я хочу удалить всю системную функцию в этом cpp файле с командой sed, например,
int a;
cin>>a;
system(a);
system("dadad");
system('dad');
Я хочу удалить всю системную функцию в вышеупомянутом коде, там любой способ, которым я могу решить эту проблему с командой sed
Это могло быть сложно, но все Ваши примеры показывают одну команду на строку с 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, и мы должны выйти из него с обратной косой чертой для соответствия фактическому (
.)