[英]Bash - Find and replace regex with another string
我有以下字符串libVersion = '1.23.45.6'
,我需要將1.23.45.6
替換為1.23.45.7
。
顯然,該版本可以是格式相似的任何數字(不一定是4個數字)。
我嘗試使用以下內容,但不起作用
echo "libVersion = '1.23.45.6'" |sed "s/([0-9\\.]+)/1.23.45.7/g"
基本sed,即不帶任何參數的sed使用BRE
(基本正則表達式)。 在BRE
,您必須轉義+
,以使regex +
重復一次或多次重復先前的標記,對於捕獲組\\(regex\\)
echo "libVersion = '1.23.45.6'" | sed "s/[0-9.]\+/1.23.45.7/"
您也可以使用否定的char類來替換單引號中存在的所有char。
echo "libVersion = '1.23.45.6'" | sed "s/'[^']*'/'1.23.45.7'/"
由於替換只發生一次,因此不需要g
全局修飾符。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.