假設我有一個名為的檔案File1.txt,其中包含字串
Hamburger
我還有另一個名為的檔案File2.txt,其中包含以下字串:
I love Pizza
我想使用該sed命令進行更改,以便它從File1.txtie復制所有文本Hamburger并將其替換File2.txt為單詞Pizza,以便最終輸出File2.txt為
I love Hamburger
有沒有辦法通過 sed 命令來做到這一點?
這是我嘗試使用但不起作用的代碼示例:
sed -e '/Hamburger/{r File1.txt' -e 'd}' File2.txt
uj5u.com熱心網友回復:
你可以試試這個sed
$ sed "s/Pizza/$(cat File1.txt)/" File2.txt
I love Hamburger
uj5u.com熱心網友回復:
問題被標記為github-actions,因此我將進行一些猜測。
- 您有一個組態檔,其中包含一些模板資料。
- 您希望自動將其替換為存盤在另一個檔案中的一些真實資料。
有很多方法可以做到這一點,但這里有一個使用envsubst
File2.txt首先,以這種方式重寫您的模板
I love $Pizza
然后運行這個 shell 腳本:
export Pizza=$(<File1.txt)
envsubst '$Pizza' < File2.txt
這將通過在檔案中擴展到相應環境變數的內容來列印出您期望的短語$Pizza,但不會擴展任何其他看起來像環境變數的東西。
uj5u.com熱心網友回復:
這可能對你有用(GNU sed):
sed 's/.*/s#pizza#&#/' file2 | sed -f - file1
將 file2 變成 sed 腳本并應用于 file1。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/536823.html
