sed -r -e "s/([^0-9a-zA-Z\{])a([^0-9a-zA-Z\}])/\1b\2/g"
([^0-9a-zA-Z\{])
- первая подобранная группа символов (длина 1 в текущем случае). Ни число (0-9
), ни буква (a-zA-Z
), ни буква {(\{
).
([^0-9a-zA-Z\}])
- вторая подобранная группа, как и первая.
Если мы сопоставили эти последовательности, мы заменили его первой группой (\1
), b
и второй группой (\2
).