замена третьим возникновением шаблона с помощью sed

Подобный ответу Iain, можно также использовать tr:

$ echo a,b,c | tr ',' '\n'
a
b
c

Оба ответа предполагают, что CSV прост (то есть, все запятые являются разделителями полей). Если у Вас есть что-то как a,"b,c",d где b,c единственное поле, затем вещи становятся более трудными

5
21.04.2012, 08:06
1 ответ

Когда a sed шаблон regex был подобран, его следующий поиск начинает со сразу после справедливого подобранного шаблона... Чтобы сделать, что Вы хотите, Вам нужно что-то как perlПредвидение regex и Оглядывается Утверждения Нулевой ширины.

В Вашем случае Вы хотите утверждать (проверяют) что подшаблон (2-е 0) действительно существует после 1-го 0 из Вашего полного шаблона. Подшаблон рассматривают как имеющий нулевую ширину, и поэтому когда полный шаблон подобран, поиск продолжается от сразу после 1-й части шаблона, а именно, после Вашего первого нуля 0.

5
27.01.2020, 20:40

Теги

Похожие вопросы