使用 sed 將文字附加到第一次出現的模式

使用 sed 將文字附加到第一次出現的模式

假設有一個文字檔如下:

Hello world
types=""
Mario
types="Game"

我想做的是找到第一個出現的type=""單字“program”並附加它。我需要輸出為:

Hello world
types="program"
Mario
types="Game"

我需要在 Unix shell 腳本中使用它。我嘗試的是:

sed -i '1,/types=""/s/types=""/types="program"/' filename

正如該命令所示,它只是插入,而不是附加。我嘗試添加a\但仍然不起作用。

答案1

您的sed一行替換似乎已經按您的預期工作:

$ cat t.txt
Hello world
types=""
Mario
types="Game"

$ sed '1,/types=""/s/types=""/types="program"/' t.txt

Hello world
types="program"
Mario
types="Game"

可能值得編輯你的問題以顯示什麼運行sed命令時獲取(不帶-i選項,以便將結果列印到終端)。

順便說一句,你的範圍1,/types=""/是多餘的。您可以將其簡化為:

sed '/types=""/s/types=""/types="program"/' t.txt

相關內容