我正在嘗試編寫一個bash腳本,它將使用sed替換以給定字符串開頭的文本文件中的整行,而我只希望它爲第一場比賽執行此替換。使用sed替換以字符串開頭的整行的第一個實例
例如,在我的文本文件我可能有:
hair=brown
age=25
eyes=blue
age=35
weight=177
我可能要簡單地替換行中首次出現帶「年齡」與不同數量的開始,而不會影響的第二個實例年齡:
hair=brown
age=55
eyes=blue
age=35
weight=177
到目前爲止,我想出了
sed -i "0,/^PATTERN/s/^PATTERN/PATTERN=XY/" test.txt
但這種意志只替換字符串「年齡」本身而不是整行。我一直在試圖在某處拋出一個「\ c」來改變整條線,但目前爲止沒有任何工作。有沒有人有任何想法如何解決這個問題?謝謝。
我敢肯定有人會發表一個更好的方法,但你的腳本中的最小變化是寫' sed -i「0,/^PATTERN/s/^ PATTERN =。* $/PATTERN = XY /」test.txt「(因爲'。* $'與該行的其餘部分相匹配)。 – ruakh 2013-03-08 23:19:46
是否有可能使用'AGE ='''AGE'開頭的示例替換行來重寫解決方案? – Turgs 2017-06-20 07:28:29