Both systems allow commands to be combined in order to achieve even more complex processes using pipes. This works with main commands, but also any tools and utilities you use via the command line. The tree main pipes are as follows:
| | Sends the result of the previous command to the next one |
> | Writes the result of the previous command to the file, overwriting it if it exists, and creating one if it doesn't |
>> | Writes the result of the previous command to the file, creating a new one, or appending it if it exists already |
You can add the preceding pipes after any command that has output – and then specify either a file or another command to be used.
For example, we can read, filter, and write a subset of addresses from Chapter 6, First Script – Geocoding with Web APIs, to a new file, based on the row, as follows:
cat ../Chapter06/cities.csv | grep ,2 > cities2.csv
Here, we retrieve all the text from the file, redirect it to filter for those with a population number that starts with 2, and store this text to another file.