Удаление (см. Замену ниже)
Я не смог найти простое одиночное выражение для удаления, поэтому, кажется, лучше всего просто сопоставить каждый шаблон в последовательности:
echo "x,x,1,x,2,x,x" | sed -e 's/,x,/,/g; s/^x,//; s/,x$//; s/^x$//'
Немного многословно, но очень читабельно.
Замена
echo "x,x,1,x,2,x,x" | sed -e 's/,x,/,y,/g; s/^x,/y,/; s/,x$/,y/; s/^x$/y/'