У меня очень большой код, в котором я по ошибке использовал unsigned
вместо uint64_t
. Из-за этой ошибки мой код не работает для больших значений более 4 байт. Теперь я хочу повторить эту ошибку... но мне не удалось войти в каждый файл (есть 540 файлов) и заменить unsigned
на uint64_t
. Есть ли какая-нибудь команда linux или какой-то автоматизированный метод, который может сделать это для меня.
Я просто хочу заменить слово unsigned
на uint64_t
. Я не хочу, чтобы слова, такие как unsignedFunction
заменялись на uint64_t
.
EDIT: Когда я заменяю его на функции следующего вида:
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)); }
Это дает мне ошибку:
error: "данные не были объявлены в этой области
Есть ли что-то иное, чем uint64_t
которое я могу сделать для замены, которое может работать для функций вышеуказанной формы?
Извините, нет, наверное, опечатки.
Используйте sed
и шаблон s/\bunsigned\b/uint64_t/g
.
\b
- интересный бит. В регулярных выражениях он соответствует границам слов.
find . -name "*.cpp" -exec sed -i "s/\bunsigned\b/uint64_t/g" '{}' \;