Используйте []]
для представления ]
в регулярном выражении. Используйте @
в качестве разделителя выражения sed, поскольку в вашей замещающей строке есть /
.
sed -e "s@[]]@${key}${newnum}@" ${list}
Вы также можете использовать обратную косую черту:
sed -e "s@\]@${key}${newnum}@" ${list}
Поскольку известно, что ]
находится в конце строки, вы также можете изменить последний символ независимо от того, что это такое:
sed -e "s@.\$@${key}${newnum}@" ${list}