Cómo reemplazar el símbolo || con |""| usando sed

Cómo reemplazar el símbolo || con |""| usando sed

Tengo un archivo que usa |como delimitador. Algunos de los registros tienen celdas vacías ||(no hay nada dentro). Estoy intentando reemplazarlos |""|con el siguiente comando sed:

sed -i 's/\|\|/\|""|/g' file

Pero el resultado no fue el que esperaba.

Fichero de entrada

A|B|C|D|||E

Salida deseada:

A|B|C|D|""|""|E

Tenga en cuenta que el principio y el final de los registros no tienen "|"

Cualquier ayuda sería apreciada.

Respuesta1

Simplemente repita la sustitución hasta que la salida no cambie:

$ echo 'A|B|C|D|||E' | sed ':X;s/||/|""|/g;tX'
A|B|C|D|""|""|E

dónde

  • :Xestablece la etiquetaX
  • t Xir a la etiqueta Xsi s///fue exitoso

información relacionada