如何替换符号||与 |""|使用 sed

如何替换符号||与 |""|使用 sed

我有一个用作|分隔符的文件。有些记录的单元格为空||(里面什么也没有)。我试图用|""|以下 sed 命令替换它们:

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

但结果并不是我所期望的。

输入文件

A|B|C|D|||E

期望的输出:

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

注意记录的开头和结尾没有“|”

任何帮助,将不胜感激。

答案1

只需重复替换,直到输出不改变:

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

在哪里

  • :X设置标签X
  • t XX如果s///成功则转到标签

相关内容