簡體   English   中英

Bash-查找正則表達式並用另一個字符串替換

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM