我正在尝试组合软件,我需要更改数据类型。将所有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
答案 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"