|
Elektra
0.8.25
|
This plugin allows you to read and write CSV files using Elektra. It aims to be compatible with RFC 4180. Rows and columns are written using Elektra's arrays (#0, #1,..). By configuring the plugin you can give columns a name.
delimiter Tells the plugin what delimiter is used in the file. The default delimiter is , and will be used if delimiter is not set.
header Tells the plugin to use the first line as a header if it is set to colname. The columns will get the corresponding names. Skip the first line if it is set to skip or treat the first line as a record if it is set to record. If header is not set, or set to record, the columns get named #0,#1,... (array key naming)
columns If this key is set the plugin will yield an error for every file that doesn't have exactly the amount of columns as specified in columns.
columns/names Sets the column names. Only usable in combination with the columns key. The number of subkeys must match the number of columns. Conflicts with usage of header.
columns/index Specifies which column should be used to index records instead of the record number.
export=,export/<column name>= Export column column name:
export must be present, additionally to export/<column name>delimiter will be used as delimiter (, as default).First line should determine the headers:
kdb mount test.csv /csv csvstorage "delimiter=;,header=colname,columns=2,columns/names,columns/names/#0=col0Name,columns/names/#1=col1Name"
The example below shows how you can use this plugin to read and write CSV files.
`` <h1>Mount plugin to cascading namespace/tests/csv`
sudo kdb mount config.csv /tests/csv csvstorage "header=colname,columns/names/#0=col0Name,columns/names/#1=col1Name"
printf 'band,album
' >> kdb file /tests/csv printf 'Converge,All We Love We Leave Behind
' >> kdb file /tests/csv printf 'mewithoutYou,Pale Horses
' >> kdb file /tests/csv printf 'Kate Tempest,Everybody Down
' >> kdb file /tests/csv
kdb ls /tests/csv #> user/tests/csv/#0 #> user/tests/csv/#0/album #> user/tests/csv/#0/band #> user/tests/csv/#1 #> user/tests/csv/#1/album #> user/tests/csv/#1/band #> user/tests/csv/#2 #> user/tests/csv/#2/album #> user/tests/csv/#2/band #> user/tests/csv/#3 #> user/tests/csv/#3/album #> user/tests/csv/#3/band
kdb get /tests/csv/#0/band #> band kdb get /tests/csv/#0/album #> album
kdb get /tests/csv/#3/album #> Everybody Down kdb get /tests/csv/#3/band #> Kate Tempest
kdb set /tests/csv/#1/album 'You Fail Me'
kdb get /tests/csv/#1/album #> You Fail Me
kdb get user/tests/csv/#0 #> #1 kdb get user/tests/csv/#1 #> #1 kdb get user/tests/csv/#2 #> #1 kdb get user/tests/csv/#3 #> #1
kdb file /tests/csv | xargs cat #> album,band #> You Fail Me,Converge #> Pale Horses,mewithoutYou #> Everybody Down,Kate Tempest
kdb rm -r /tests/csv sudo kdb umount /tests/csv
directoryvalue to cascading namespace /tests/csvkdb mount config.csv /tests/csv csvstorage directoryvalue
printf 'Schindler’s List,1993,8.9
' >> kdb file /tests/csv printf 'Léon: The Professional,1994,8.5
' >> kdb file /tests/csv
kdb ls /tests/csv #> user/tests/csv/#0 #> user/tests/csv/#0/#0 #> user/tests/csv/#0/#1 #> user/tests/csv/#0/#2 #> user/tests/csv/#1 #> user/tests/csv/#1/#0 #> user/tests/csv/#1/#1 #> user/tests/csv/#1/#2
kdb get user/tests/csv/#0/#0 #> Schindler’s List kdb get user/tests/csv/#1/#2 #> 8.5
kdb get user/tests/csv/#0 #> #2 kdb get user/tests/csv/#1 #> #2
kdb set user/tests/csv/#0 'Movie – Year – Rating' kdb set user/tests/csv/#1 'It’s a Me.'
kdb get user/tests/csv/#0 #> Movie – Year – Rating kdb get user/tests/csv/#1 #> It’s a Me.
kdb rm -r /tests/csv sudo kdb umount /tests/csv
kdb mount config.csv /tests/csv csvstorage "delimiter=;,header=colname,columns/index=IMDB"
printf 'IMDB;Title;Year
' >> kdb file /tests/csv printf 'tt0108052;Schindler´s List;1993
' >> kdb file /tests/csv printf 'tt0110413;Léon: The Professional;1994
' >> kdb file /tests/csv
kdb ls /tests/csv #> user/tests/csv/tt0108052 #> user/tests/csv/tt0108052/IMDB #> user/tests/csv/tt0108052/Title #> user/tests/csv/tt0108052/Year #> user/tests/csv/tt0110413 #> user/tests/csv/tt0110413/IMDB #> user/tests/csv/tt0110413/Title #> user/tests/csv/tt0110413/Year
kdb get /tests/csv/tt0108052/Title #> Schindler´s List
kdb rm -r /tests/csv sudo kdb umount /tests/csv
kdb mount config.csv /tests/csv csvstorage "delimiter=;,header=colname,columns/index=IMDB"
printf 'IMDB;Title;Year
' >> kdb file /tests/csv printf 'tt0108052;Schindler´s List;1993
' >> kdb file /tests/csv printf 'tt0110413;Léon: The Professional;1994
' >> kdb file /tests/csv
kdb export /tests/csv csvstorage -c "delimiter=;,header=colname,columns/index=IMDB,export=,export/IMDB=,export/Title=" #> IMDB;Title #> tt0108052;Schindler´s List #> tt0110413;Léon: The Professional
kdb export /tests/csv csvstorage -c "delimiter=;,header=colname,columns/index=IMDB,export=,export/IMDB=,export/Year=" #> IMDB;Year #> tt0108052;1993 #> tt0110413;1994
kdb rm -r /tests/csv sudo kdb umount /tests/csv
```
kdb import without file)
1.8.13