0
我必須替換文件中兩個字符串之間的所有內容,但僅限於第二個字符串的第一次出現。如何替換之間的一切,但只有直到第一次出現結束字符串?
以下是文件內容的樣本線,
AuthorSessionId
, CONVERT_TZ(CreatedAt,"${DatabaseTimezone}","${ApplicationTimezone}") AS CreatedAt
FROM PlayerPhoneArchive 
WHERE RevisionDate BETWEEN ? AND ?

) AS PH 

在此,我想以取代一切從CONVERT_TZ
開始到之前CreatedAt

第一

。
最後的輸出應該是,
AuthorSessionId
, CreatedAt
FROM PlayerPhoneArchive 
WHERE RevisionDate BETWEEN ? AND ?

) AS PH 

這裏是我試過,
sed -e 's/CONVERT_TZ.*
/CreatedAt\
\
/
,但它正在取代,直到

最後一次出現,即字符串的結束和即將到來的,
AuthorSessionId
, CreatedAt

因爲它正在取代,直到最後一次出現

。
如何只能更換,直到串

的第一次出現?任何幫助,這是非常感謝。
感謝您的回答。您的'sed'註釋對我來說很神祕,因爲這將在docker容器內運行,我們無法確定perl的安裝情況。你是否也可以添加你的'sed'解決方案與這個答案?所以我可以接受。 – Stranger