Repita a substituição até que a saída não mude:
$ echo 'A|B|C|D|||E' | sed ':X;s/||/|""|/g;tX'
A|B|C|D|""|""|E
onde
-
:X
define o rótuloX
-
t X
vai para o rótuloX
ses///
tiver sucesso
Eu tenho um arquivo que usa |
como um delimitador. Alguns dos registros têm célula vazia como ||
(nada dentro). Eu estou tentando substituí-los com |""|
com o seguinte comando sed:
sed -i 's/\|\|/\|""|/g' file
Mas o resultado não foi o que eu esperava.
Arquivo de entrada
A|B|C|D|||E
Saída desejada:
A|B|C|D|""|""|E
Observe que o início e o final dos registros não têm "|"
Qualquer ajuda seria apreciada.
Tags bash sed shell-script