As a Systems Administrator myself, I have often come across the problem of having many large CSV files, and no way to easily sift through the data within. This is especially true of files which may have much duplicate data, but where one or two rows in the file have incorrect fields. This is often only apparent when the file is imported into a new system and the incorrect data either causes a problem for the program, or more likely simply stops the row from being processed.
A second instance of having too much data with no way to easily view it is to check network traffic logs. As many network traffic logs are in tabular format, that being with each field being separated by a tab, we can use CsvSQL. If we run CsvSQL with the -s switch with a value of "\t", where \t is a tab character, then CsvSQL will split the file based on tabs (Incidently we can also use CsvSQL for programs which use space based output by using a " " separator). This will enable the user to check, for instance, all ack's coming from an IP of 10.1.0.7 if the recipient's IP is 10.1.0.39.
From coming up against these two obstacles amongst others time and time again, and seeing many other people with the same gripes, I decided to write a program that would help manipulate this data in an easy and efficient manner. And so CsvSQL was born.