Bash
用主字元串中的另一個值替換子字元串
我有一個帶有以下模式的字元串
SrcWorkspaceName=abc_1234;SrcEndVer=1409;Lang=ENU,FRA,NLD
我需要用其他數字
SrcEndVer
替換該值。1409
這裡的數字儲存在一個變數中,比如說
Var=1600
因此,
1409
值應替換為變數Var
例如下面的輸出
SrcWorkspaceName=abc_1234;SrcEndVer=1600;Lang=ENU,FRA,NLD
這是一種可能:
sed 's/;SrcEndVer=[0-9]*/;SrcEndVer=1600/'
輸出:
SrcWorkspaceName=abc_1234;SrcEndVer=1600;Lang=ENU,FRA,NLD
將Miller與DKVP 一起使用:鍵值對格式:
$ echo 'SrcWorkspaceName=abc_1234;SrcEndVer=1409;Lang=ENU,FRA,NLD' | mlr --dkvp --fs ';' put '$SrcEndVer = 1600' SrcWorkspaceName=abc_1234;SrcEndVer=1600;Lang=ENU,FRA,NLD