As Robbie stated, if you were a nasty person you wouldn't care that you were hurting others. The fact that you care, and that you are upset when you hurt those you love, tells us that you are not a mean person at heart.
Fear is one of many reasons why you may say things in a manner you later regret. Not having had a voice or the ability to change your circumstances when you were being abused is another.
You want those about whom you care to take action, and you are frustrated and angry when they do not do what seems so obvious to you. Your hypersenstivity to their inaction or indifference is triggering you.
I hope you are seeing a therapist. Working through your pain will help you be less reactive to those around you. This does not mean that you will stop caring. It means that you won't be triggered by their choices.
It can be infuriating when I see someone not do what seems to be so obvious. Yet they continue to complain about a situation that is within their ability to change. Sometimes you have to step back and realize, regardless how painful it is, that you can't save people from themselves. They have to make the decision to change.
I know you are upset with yourself, I hear it in your words.
You are a good person who only wants good for others. If you didn't care so much you wouldn't get so upset.
Be gentle and kind to yourself.
Acceptance on someone else's terms is worse than rejection.