Bash

用主字元串中的另一個值替換子字元串

  • March 21, 2020

我有一個帶有以下模式的字元串

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

MillerDKVP 一起使用:鍵值對格式:

$ 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

引用自:https://unix.stackexchange.com/questions/574106