You could try datamash
Also importing your records into mysql.
importing into sqlite.
sqlite> .mode csv
sqlite> .import test.csv foo
if the first line of your csv file contains the column names, then you can omit then you don't have to create the table first.
Not a number
SELECT * FROM myTable WHERE col1 NOT REGEXP '[0-9]+';
You can and together as complex as where statement as you need.
You can use to select column names in any order, and omit or move columns at will.
select a,b,z,t,w,u from table;
Notice they are not in any order, and columns could be missing.
You can physically move columns around, but because of the way SQL works it is completely unnecessary.
ALTER TABLE Employees MODIFY COLUMN empName VARCHAR(50) AFTER department;