如何替換符號||與 |""|使用 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///成功則轉到標籤

相關內容