String

替換子串

  • January 6, 2017

有沒有辦法用 char 替換字元串?

例子 :

我有,

123456789 

而且,我想用 * 替換從位置 3 到位置 8 的所有字元,以產生這個結果

12******9 

有沒有辦法使用

sed -i "s/${mystring:3:5}/*/g" ?

你可以分配一個變數var1=123456789

echo $var1會給123456789

然後var2="${var1:0:2}*****${var1:8:9}"

echo $var2會給12*****9

目前尚不清楚數據在哪裡。如果它在 shell 變數中,那麼

用原始的前兩個字元、替換的字元串和原始的尾隨字元構造一個新字元串。要麼將其分配回原件,要麼將其用作變數。決定是否要檢查原始字元串是否短於 8 個字元。

mystring="${mystring:0:2}******${mystring:8}"

你可以做

mystring=${mystring/????????/${mystring{0:2}******}

如果它在一個文件中,那麼

sed 's/\(..\)......../\1********/' file

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