Skip to content
Tools written in go for manipulating CSV files.
Branch: master
Clone or download
jonseymour Use decoder.UseNumber() feature.
Signed-off-by: Jon Seymour <>
Latest commit a843eda Jun 25, 2017
Type Name Latest commit message Commit time
Failed to load latest commit information.
cmd Add hints about alternative format strings. Sep 26, 2016
LICENSE Add LICENSE. Oct 26, 2014 Add installation instructions. Jun 11, 2016
cat.go Introduce CatProcess Jan 28, 2016
comparator.go Introduce SortComparator type. Feb 3, 2016
csv-to-json.go Extract CsvToJsonProcess into its own go module. Jan 27, 2016
influx-line-format.go Add support for s and ms formats. Sep 7, 2016
join.go Add support for join types. Feb 3, 2016
json-to-csv.go Use decoder.UseNumber() feature. Jun 25, 2017
package.go Support for reading CSV streams containing a leading header record. Oct 26, 2014
pipe.go Introduce Pipe, NewPipe() and NewPipeLine(). Jan 28, 2016
process.go Abstract the essentials of a CSV process into a type. Jan 26, 2016
reader.go Introduce WithProcess method to transform a reader with a process. Feb 3, 2016
select.go Use errCh-> func() error pattern. Jan 26, 2016
single-record.go Don't include newlines in formatting of a record. These can be added … Oct 27, 2014
sort.go Add a note about thread safety of resulting SortProcess Feb 4, 2016
surrogate-keys.go Extract SurrogateKeysProcess into a go module within the csv package. Jan 27, 2016
uniquify.go Extract the core of the uniquify process into its own go-module. Jan 26, 2016
usetab.go Add a tool to use tab characters in the output stream (by default) Jun 10, 2016
writer.go Document the convention to be used with a nil argument to WriterBuilder. Feb 2, 2016


go-csv - a set of golang tools and libraries for manipulating CSV representations


go-csv is a set of tools for manipulating streams of CSV data.

As a rule, most tools in this set assume CSV files that include a header record that describes the contents of each field.


  • csv-select - selects the specified fields from the header-prefixed, CSV input stream
  • uniquify - augments a partial key so that each record in the output stream has a unique natural key
  • surrogate-keys - augments the input stream so that each record in the output stream has a surrogate key derived from the MD5 sum of the natural key
  • csv-to-json - converts a CSV stream into a JSON stream.
  • json-to-csv - converts a JSON stream into a CSV stream.
  • csv-sort - sorts a CSV stream according to the specified columns.
  • csv-join - joins two sorted CSV streams after matching on specified columns.
  • influx-line-format - convert a CSV stream into influx line format.
  • csv-use-tab - uses a table delimit while writing (default) or reading (--on-read) a CSV stream


The instructions assume that there is a local go installation available, that the binaries will be installed into $GOPATH/bin and this directory is already on the user's PATH.

go install


For more information, refer to .


Refer to LICENSE file in same directory.


(c) 2014 - Wild Duck Theories Australia Pty Limited

You can’t perform that action at this time.