You can use the ST_Intersection function to clip one dataset from another. In this recipe, you first created a view, where you performed a spatial join between a polygonal layer (countries) and a linear layer (rivers) using the ST_Intersects function. In the context of the spatial join, you have used the ST_Intersection function to generate a snapshot of the rivers in every country.
You have then created a bash script in which you iterated every single country and pulled out to a shapefile the clipped rivers for that country, using ogr2ogr and the previously created view as the input layer.
To iterate the countries in the script, you have been using ogrinfo with the -sql option, using a SQL SELECT DISTINCT statement. You have used a combination of the grep and awk Linux commands, piped together to get every single country code. The grep command is a utility for searching plaintext datasets for lines matching a regular expression, while awk is an interpreted programming language designed for text processing and typically used as a data extraction and reporting tool.