我是指令的初學者,使用Linux
。現在我有一個行的文件中:sed:如何替換具有可變字符的行?
exten => *97,ttttt
而且我想,以取代該行的兩行:
exten => *97,aaaaa
exten => *97,bbbbb
如果原文是靜態的,我可以這樣寫命令更換行:
sed -e 's/,ttttt/,aaaaa\nexten => *97,bbbbb/' -i xxxx.txt
但不知何故,該文件xxxx.txt
由腳本生成,因此*97
可能成爲*95
或其他東西,所以接下來的時間xxxx.txt
可能是這樣的:
exten => *95,ttttt
而且我有這兩條線來代替它這個時間:
exten => *95,aaaaa
exten => *95,bbbbb
在這種情況下,我不能執行sed
以上命令cuz它會寫*97
到第二線。
有沒有辦法讓我每次都不需要改寫sed
命令,而且還可以正確地完成這項工作?
問題已解決。謝謝。 –
@JohnSmith:在模式部分,轉義圓括號內的第一個內容保存爲「group 1」,可以用'\ 1'表達式在替換部分恢復。下一個加括號的表達式將被保存爲「\ 2」,如果其中更多,則以此類推。您應該閱讀一些關於正則表達式或「sed」手冊的文章,因爲這是它最基本的知識。 – Birei