Det blev resultatet efter fackliga förhandlingar på måndagen.
Nässjö och Uddevalla kommer att behållas som stationeringsorter och ett tjugotal personer på varje ort kommer att få jobba kvar. Neddragningarna i Linköping blir också mindre omfattande.
Däremot avvecklas som tidigare beslutat Falun, Norrköping, Mjölby och Alvesta.
En anledning till att SJ väljer att behålla Uddevalla är att bolaget vunnit upphandlingen av trafiken på Bohusbanan.
SJ kommer också att minska sitt köp med 60-80 tjänster från underleverantören ISS TraffiCare och i stället erbjuda den egna personalen arbetsuppgifterna. Det betyder att siffran 700 övertaliga kommer att minskas.