替换文件中的单词

时间:2013-11-01 13:52:07

标签: c++ c linux ubuntu

我有一个非常大的代码,我错误地使用unsigned代替uint64_t。由于这个错误,我的代码不适用于大于4字节的大值。现在我想重新说明这个错误......但我不可能进入每个文件(有540个文件)并用unsigned替换uint64_t。是否有一些linux命令或一些自动方法可以为我做。

我只想用 unsigned 替换 uint64_t 一词。我不希望 unsignedFunction 等词语被 uint64_t 取代。

修改 当我将其替换为以下形式的函数时:

   static inline unsigned readUint32Aligned(const unsigned char* data) { return toHost(*reinterpret_cast<const unsigned*>(data)); }

转换后的函数是:

   static inline uint64_t readUint32Aligned(const uint64_t char* data) { return toHost(*reinterpret_cast<const uint32_t*>(data)); }

它给了我错误:

  

错误:未在此范围内声明“数据”

除了uint64_t我可以做些什么来代替,这可能适用于上述形式的功能吗?

对不起,这可能不是一个错字。

1 个答案:

答案 0 :(得分:2)

使用sed和模式s/\bunsigned\b/uint64_t/g

\b是有趣的一点。在常规表达式中,它匹配单词边界。