
У меня есть следующая строка в файле, я хотел бы вставить ее \N
между двумя запятыми
20121128020001,2012-11-28 02:00:01.000,,,,,,,3.80,,,,,
Я пытался использовать семена
sed -i 's/,,/,\\N,/g' Test.CSV
Где я получаю следующий результат:
0121128020001,2012-11-28 02:00:01.000,\N,,\N,,\N,,3.80,\N,,\N,,
Я мог бы запустить два раза, но в огромном файле это неэффективно. Как исправить команду sed?
решение1
Используйте Perl с опережающими просмотрами, чтобы вторая запятая не была частью совпадения:
perl -pe 's/,(?=,)/,\\N/g'
Или используйте одно и то же выражение дважды в одной строке:
sed 's/,,/,\\N,/g;s/,,/,\\N,/g'