gpalleschi / csvutil

CSVutil.sh is a very simple but effective bash shell to manage csv files by command line and generate output on stdout or file.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

CSVutil

Description

CSVutil.sh is a very effective bash shell to manage csv files by command line.
Script permits to extract, remove, change separator, print and filter record from a csv file, all results will be generated in stdout or on a file.

Use: CSVutil.sh <CSV File Name> (options)

Parameters (...) are optional
Parameters <...> are mandatory

Option Description
[-h] Display an Help
[-s(Separaror)] To set field separator {default is ;}
[-e(Columns To Extract)] List of columns to extract separated by , or a range of columns separated by - {example -e1,4,8-11 extract columns numbered 1 and 4 and from 8 to 11}
[-r(Columns To Extract)] List of columns to remove separated by , or a range of columns separated by - {example -r1-3,5 remove columns numbered from 1 to 3 and 5}
[-d] Debug Mode
[-c(New CSV Separator)] Specify a new CSV separator
[-f(Filter Condition)] Filter Condition is composed by number column and a regular expression diveded each other by : {example -f2:^Ab Filter will be apply at column 2 and if is true (starts with Ab) record will be filtered} You can specify more filter options and will be related each other in and condition
[-o(File Name Output)] File Name Output to generate instead stdout
[-ff(File Name Filtered)] File Name where are generated all filtered record in original format
[-t] This option indicate that first row of csv file contains columns titles used specify with -v option
[-v(separator)] This option is used to show all records with a row for field, you can specify a separator between fields printed {default values is ;}

It's important clarify that for options -e, -r and -f column number start from 1.

Example of executions :

CSVutil.sh filetest.csv -e1,3,6-8 -c, [This execution extract from file filetest.csv columns 1,3 and from 6 to 8 and replace separator from ; to , and generate output in stdout].

CSVutil.sh filetest.csv -r4,7 -o./filetestRemoved.csv [This execution remove from file filetest.csv column 4 and 7 and generate output on file filetestRemoved.csv].

CSVutil.sh filetest.csv -f3:^Oct -ff./fileFiltered.csv [This execution filter from filetest.csv all record where in column 3 start with Oct and generate a new file with record filtered and record not filtered are printed in stdout].

Prerequisites

None

Built With

Authors

License

This project is licensed under the GNU GENERAL PUBLIC LICENSE 3.0 License - see the LICENSE file for details

About

CSVutil.sh is a very simple but effective bash shell to manage csv files by command line and generate output on stdout or file.

License:GNU General Public License v3.0


Languages

Language:Shell 100.0%