У меня есть файл выгрузки базы данных с полем, разделенным символом . Я запускаю этот файл через sed, чтобы заменить любые вхождения на \ N . Это так, что когда файл загружается в MySQL, \ N в интерпретируется как NULL.
Команда sed 's / \ t \ t / \ t \ N \ t / g;' почти работает, за исключением того, что он заменяет только первый экземпляр, например "... ..." становится "... \ N ...".
Если я использую 's / \ t \ t / \ t \ N \ t / g; s / \ t \ t / \ t \ N \ t / g;' это заменяет больше экземпляров.
У меня есть представление, что, несмотря на модификатор / g, это связано с тем, что конец одного матча является началом другого.
Может кто-нибудь объяснить, что происходит, и предложить команду sed, которая будет работать, или мне нужно выполнить цикл.
Я знаю, что могу переключиться на awk, perl, python, но я хочу знать, что происходит в sed.