更改软件模块的数据类型

时间:2013-08-23 08:37:04

标签: c replace sed

我正在尝试组合软件,我需要更改数据类型。将所有int替换为xint_t。要对模块文件夹中的所有文件执行此操作,我尝试执行此操作

find ./*.c | sed -i 's/\<int\>/xint_t/'

但是当我这样做时,我得不到我想要的结果。

例如:foo(int a,int b)foo(int a, int b)  它错过了将int作为第二个参数的情况。这种行为的原因是什么?如何编写 sed 命令来解决此问题

是的,我也需要照顾指针。例如int* a

2 个答案:

答案 0 :(得分:1)

尝试

find . -type f -name "*.c" -exec sed -i.bak 's/\bint\b/xint_t/g' {} \;

这会将所有int个文件中的xint_t更改为*.c,并将原始.c个文件的副本保留为.bak

答案 1 :(得分:0)

试试这个

find ./ -name "*.c" | xargs sed -i "s/\<int\>/xint_t/g"