使用 sed 命令删除所有系统功能

使用 sed 命令删除所有系统功能

我有一个 cpp 文件,我想使用 sed 命令删除此 cpp 文件内的所有系统函数

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

我想删除上述代码中的所有系统功能,有什么方法可以用 sed 命令解决这个问题吗?

答案1

这可能会变得很复杂,但所有示例都显示每行一个命令,命令system从行首开始。在这种情况下,它相对简单。以下是三种方法:

使用grep

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

正则表达式^system(匹配以 开头的行system(。该-v选项告诉 grep 删除匹配的行。

使用sed

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

d命令告诉sed删除与正则表达式匹配的任何行^system(

使用awk

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

在 awk 中,!是否定的,并!/^system\(/打印任何符合以下条件的行:不是匹配正则表达式。 (与和^system\(的默认形式不同,awk 中是正则表达式活动的,我们必须用反斜杠对其进行转义才能匹配实际的。)grepsed((

相关内容