Skip to content

ahuigo/xcut

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

26 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Xcut

Xcut is an Enhanced cut command, which is used to help grep column.

Build Status

Install

pip install xcut
pip3 install xcut

xcut --help

Usage

Let's test a file named test.csv

> ~ cat test/test.csv
name,gender,job
Jack,male,coder
Lucy,female,artist

Cut fields

> ~ xcut -f job,name test/test.csv
job,name
coder,Jack
artist,Lucy

Set title type

The default title type is head: -t head

> ~ xcut -f name,gender test/test.csv

Set title type to index: -t index

> ~ xcut -f 1,3 -t index  test/test.csv
1,3
name,job
Jack,coder
Lucy,artist

Set title type to custom(--titles TITLES)

> ~ xcut -f '职业,姓名' --titles '姓名,性别,职业' test/test.csv -od $'\t'
职业 姓名
job	name
coder	Jack
artist	Lucy

Set title type to kv(-t kv)

> ~ echo 'key1=v1,key2=v2,key3=v3' | xcut -f key3,key2 -t kv
key3,key2
v3,v2

Set input delimiter(d)

> ~ xcut -f job,name test/test.csv -d ',' -od '`'
job`name
coder`Jack
artist`Lucy

Set output delimiter(od)

> ~ xcut -f job,name test/test.csv -od '`' 
job`name
coder`Jack
artist`Lucy

pretty output

You could set the output delimiter(od), also you can print it via pretty

> ~ xcut -f '职业,姓名' --titles '姓名,性别,职业' test/test.csv -od $'\t\t' --pretty
职业                  姓名
----------------------------------------
job                 name
coder               Jack
artist              Lucy

Use csv format

Not only you could parse csv format file with --from-csv:

$ echo 'Lucy,"98,99",23' | python xcut -f scores,name --titles name,scores,age
scores,name
"98,Lucy

$ echo 'Lucy,"98,99",23' | python xcut -f scores,name --titles name,scores,age --from-csv
scores,name
98,99,Lucy

You could also save the output to csv format with(--to-csv)

$ echo 'Lucy,"98,99",23' | python xcut -f scores,name --titles name,scores,age --from-csv --to-csv
scores,name
"98,99",Lucy

Required

  1. python>=3.5
  2. click