Skip to main content

Coreutils-like kit for headed tab-separated files processing

Project description

This is fork from original tabkit project (https://github.com/andreifyodorov/tabkit) whith Python 3 support

A CLI TSV MR kit (a command-line interface tab-separated values map-reduce kit). Powered by coreutils.

Overview

$ cat fruits | tpretty

 fruit   | price:float
---------+-------------
 apple   | 1.04
 kumquat | 4.99
 orange  | 2.07

$ cat sales | tpretty

 fruit   | qty:int | paid:bool
---------+---------+-----------
 apple   | 10      | 1
 apple   | 7       | 0
 apple   | 1       | 1
 orange  | 3       | 1
 orange  | 18      | 1
 orange  | 4       | 0
 orange  | 2       | 1
 kumquat | 1       | 1
 kumquat | 2       | 1

$ cat sales \
        | tmap_awk -f paid \
        | tsrt -k fruit \
        | tjoin -j fruit - fruits \
        | tgrp_awk -g fruit -o "sum_qty=sum(qty)" -o "sum_paid=sum(qty*price)" \
        | tpretty

 fruit   | sum_qty:int | sum_paid:float
---------+-------------+----------------
 apple   | 11          | 11.44
 kumquat | 3           | 14.97
 orange  | 23          | 47.61

tcat

Concatenate FILE(s), or standard input, to standard output.

1.tsv:

# apples    oranges
1   foo
2   bar

2.tsv:

# apples    oranges
3   baz
4   bam
$ tcat 1.tsv 2.tsv
# apples    oranges
1   foo
2   bar
3   baz
4   bam

tcut

Print selected columns from each FILE to standard output.

input.csv:

# good  bad also_good
1   apple   foo
2   orange  bar
3   lemon   baz
$ cat input.csv | tcut -f good,also_good
#   good    also_good
1   foo
2   bar
3   baz

tsrt

Write sorted concatenation of all FILE(s) to standard output.

input.csv:

# number    fruit
10  apple
3   orange
10  lemon
$ cat input.csv | tsrt -k good:num,fruit:desc
# number    fruit   # ORDER: number:num, fruit:desc
3   orange
10  lemon
10  apple

tmap_awk

Perform a map operation on the input FILE(s).

input.csv:

# x
.1
4
-0.5
0
$ cat input.csv | tmap_awk -f 'x>0' -o 'y=log(x)'
# y:float
-2.30259
1.38629

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

tabkit3-0.8.0.tar.gz (14.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

tabkit3-0.8.0.macosx-10.11-x86_64.tar.gz (33.6 kB view details)

Uploaded Source

File details

Details for the file tabkit3-0.8.0.tar.gz.

File metadata

  • Download URL: tabkit3-0.8.0.tar.gz
  • Upload date:
  • Size: 14.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for tabkit3-0.8.0.tar.gz
Algorithm Hash digest
SHA256 e518a5d21828a5ffc2373660eccfaf60c1eb433188b13a1a237cd408f10fd323
MD5 5da158ca51dca3756350a3d299c5294e
BLAKE2b-256 a2d931923994c2d550357331d50cf7597d43f00cca8db81e833ae552d3fada49

See more details on using hashes here.

File details

Details for the file tabkit3-0.8.0.macosx-10.11-x86_64.tar.gz.

File metadata

File hashes

Hashes for tabkit3-0.8.0.macosx-10.11-x86_64.tar.gz
Algorithm Hash digest
SHA256 5cc7845acaf4fbaa28387b902586021fa30ec2d6712996390ecb72a730e734bf
MD5 ea5d6cea35cc1676e8b35ffaaf55c0ef
BLAKE2b-256 6ecf3981ea340915de2d45952024370af5fc2102c590dc5668429dbefd47be2e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page