While the model of standard input, output, and error streams for Bash is simple in principle, redirections and piping allow us to combine programs and files in novel ways to efficiently and expressively program in only one or two lines what might take hundreds of lines in other programming languages. This is especially true when extended to applying other programming languages, such as sed or AWK, to filter data appropriately.
In the next chapter, we'll learn how to gather and manipulate data within Bash itself, using its builtin variables and patterns.