0

我正在尝试对需要更改数据类型的软件进行组件化。就像全部替换intxint_t. 要对模块文件夹中的所有文件执行此操作,我尝试执行此操作

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

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

例如:foo(int a,int b)foo(int a, int b) 错过了找到 int 作为第二个参数的情况。这种行为的原因是什么以及如何编写sed命令来克服这个问题

是的,我也需要处理指针。像案例int* a

4

2 回答 2

1

尝试

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

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

于 2013-08-23T08:43:32.847 回答
0

尝试这个

find ./ -name "*.c" | xargs sed -i "s/\<int\>/xint_t/g"
于 2013-08-23T08:42:29.003 回答