Answer for revised question
$ echo "$var" | sed 's/default=[^,]*,//'
rule:access=allow,OTHER=0,SOMETHING=1
If we want to update the value of var, we use command substitution:
$ var="$(echo "$var" | sed 's/default=[^,]*,//')"
$ echo "$var"
rule:access=allow,OTHER=0,SOMETHING=1
Answer for original question
Using bash
To remove default=default value,, use pattern substitution:
$ var="${var/default=default value,/}"
$ echo "$var"
rule:access=allow,OTHER=0,SOMETHING=1
This feature is documented in man bash:
${parameter/pattern/string}
Pattern substitution. The pattern is
expanded to produce a pattern just as in pathname expansion.
Parameter is expanded and the longest match of pattern against its
value is replaced with string. If pattern begins with /, all matches
of pattern are replaced with string. Normally only the first match
is replaced. If pattern begins with #, it must match at the beginning
of the expanded value of parameter. If pattern begins with %, it
must match at the end of the expanded value of parameter. If
string is null, matches of pattern are deleted and the / following
pattern may be omitted. If parameter is @ or *, the substitution
operation is applied to each positional parameter in turn, and the
expansion is the resultant list. If parameter is an array variable
subscripted with @ or
*, the substitution operation is applied to each member of the array in turn, and the expansion is the resultant list.
Using sed
$ var="$(echo "$var" | sed 's/default=default value,//')"
$ echo "$var"
rule:access=allow,OTHER=0,SOMETHING=1