only if your definition of 'everything' is limited, all the refactorings in a half-decent ide are quite hard to get right with awk & sed. For what is worth, even something as simple as finding all elements in a type hierarchy are quite unobvious to do with shell tools for me.
FWIW, for other types of refactorings (I mainly use Java):
1. Change the name/type of something
2. Compile
3. Work through the errors fixing stuff it broke
Maybe that's less efficient than using some IDE tool to do it, but it's not like it takes a long time.But thank god I don't work on large systems like that.
I agree that, all the things you can do with automatic refactoring you can do with a change/compile/fix loop, but it imposes an higher amount of friction, which (even in a subconscious way) pushes you into not making changes.
As a ruby and python dev using vim, I can even feel this in changing a single method name (with sed, obviously not syntax aware), as a java one without a supporting ide I'd seldom venture in a "extract superclass and use it where possible as return value" kind of change.
A standalone tool can either do static analysis (like a tag index, but more so) or communicate with the language runtime, and just leave the UI to the editor/IDE. Either way, it doesn't need to be in sed & awk.
The main thing is just to get good at using the shell. Grep, awk, etc etc With all the tools at the cmdline, you can do anything.