2010-06-04 7 views
1

Я хочу заменить каждый экземпляр int в очень большой базе данных с помощью int32_t, по причинам переносимости. Я безуспешно пытался:Sed заменить на новые строки?

sed s/'\bint\b'/' int32_t '/g 

и он не соответствует случаям, когда ИНТ является первой вещью на линии. Я совершенно не понимаю, как это сделать.

Любые идеи?

ответ

2

Ваш шаблон прав, работает для меня, в том числе начало строки случая:

sed 's/\bint\b/\ int32_t\ /g' file 

(возможно, цитаты?)

+0

мне кажется, что версия СЭД в Mac OS X является то, что вызывая эту проблему, поскольку версия Linux работает отлично. Время собирать! – Alex

1
s/'^int\b'/'int32_t\b'/g 

должен совпадать с началом случаев линии, предполагая, что на начало строки вы имеете в виду самое первое, что на линии. Если ваша проблема вызвана символом табуляции, предшествующим int, запустите код через расширение, чтобы включить вкладки в пробелы, тогда ваше оригинальное выражение будет работать.

Смежные вопросы