Simplifying data extraction using Linux text utilities
I remember, the first time I was introduced to Unix - Yes my first experience with a POSIX OS was with Unix, more specifically SCO Unix and not Linux - the instructor told us that the real power of Unix was in its accomplishment of complex tasks by splitting them into smaller tasks which inturn are split into even smaller tasks and then assigned to different utilities.
And the output from these utilities is combined together to get the desired solution. In management speak, it is known as efficient delegation of duties which makes Unix/Linux a winner. Compared to this, in Windows, you have a monolithic software doing all the tasks by itself which leads to unnecessary duplication and waste of resources.
As an example, take the case of spell checking for instance. In Linux you have a utility called aspell which does the spell checking. This is regardless of which application you use - be it Abiword, Vim or OpenOffice.org, when you select the menu to spell check (assuming there is one), it will be passing on the task to aspell; and aspell will in turn pass back the result to the application. But in windows each application has its own spell check code inbuilt in it.