
我需要在硬體驅動程式中修改的字串.conf文件如下:
options rsi_sdio dev_oper_mode=13
看起來很簡單,但開發人員很樂意更改此字串,這將破壞精確匹配的 sed 表達式。我現在必須將值前面的字串視為“不確定”;無法以 100% 的精度進行可靠預測。
因此,我只能匹配值本身,該值本身也可以變化:當前為“13”,但將來可能會改變。唯一「已知」的是我需要修改的值長度可以是 1 或 2 位數字。
所以我需要一個防彈的正規表示式,即使字串和值都發生變化,也能保證值可以成功設置,以避免損壞!
答案1
當開發人員向我拋出這個曲線球時,這實際上導致了無線連接的巨大突破。由於這是許多人可能遇到的情況,我將發布我的解決方案:
sed -E -i 's/=[0-9]{1,2}$/=6/' /etc/modprobe.d/rs9113.conf
這會匹配等號後面至少 1 位數字,但最多 2 位數字。因此字串可以更改,甚至預設值「13」也可以更改,但此正規表示式應該保持面向未來的能力。
希望處理這種廣泛變化的其他人發現這種方法有助於確保他們的腳本保持正確 -