Sha256: 09261befd6c586ad51ab66ab36ade46a6d91e97669d2c393819e9fa8798ced17

Contents?: true

Size: 1.36 KB

Versions: 337

Compression:

Stored size: 1.36 KB

Contents

#!/usr/bin/env ruby

require 'rbbt-util'
require 'rbbt/util/simpleopt'

$0 = "rbbt #{$previous_commands*""} #{ File.basename(__FILE__) }" if $previous_commands

options = SOPT.setup <<EOF
Subset entries in a tsv

$ rbbt tsv subset [options] file.tsv --subset key1,key2,key3

Subsets entries from a TSV file from a given list. Works with Tokyocabinet HDB and BDB as well.

-tch--tokyocabinet File is a TC HDB
-tcb--tokyocabinet_bd File is a TC BDB
-hh--header_hash* Change the character used to mark the header line (defaults to #)
-s--subset* Subset of keys (Comma-separated or file)
-m--merge Merge TSV rows
-h--help Help
EOF

SOPT.usage if options[:help]

file = ARGV.shift

file = STDIN if file == '-'

raise ParameterException, "Please specify the tsv file as argument" if file.nil?

subset = options[:subset]
raise ParameterException, "Please specify a subset of keys" if subset.nil?

if File.exist?(subset)
  subset = Open.read(subset).split("\n")
else
  subset = subset.split(',')
end

options[:fields] = options[:fields].split(/,\|/) if options[:fields]
options[:header_hash] = options["header_hash"]

case
when options[:tokyocabinet]
  tsv = Persist.open_tokyocabinet(file, false)
  puts tsv.summary
when options[:tokyocabinet_bd]
  tsv = Persist.open_tokyocabinet(file, false, nil, TokyoCabinet::BDB)
  puts tsv.summary
else
  tsv = TSV.open(file, options)
end

puts tsv.select(subset)

Version data entries

337 entries across 337 versions & 1 rubygems

Version Path
rbbt-util-6.0.3 share/rbbt_commands/tsv/subset
rbbt-util-5.44.1 share/rbbt_commands/tsv/subset
rbbt-util-5.43.0 share/rbbt_commands/tsv/subset
rbbt-util-5.42.0 share/rbbt_commands/tsv/subset
rbbt-util-5.41.1 share/rbbt_commands/tsv/subset
rbbt-util-5.41.0 share/rbbt_commands/tsv/subset
rbbt-util-5.40.5 share/rbbt_commands/tsv/subset
rbbt-util-5.40.4 share/rbbt_commands/tsv/subset
rbbt-util-5.40.3 share/rbbt_commands/tsv/subset
rbbt-util-5.40.0 share/rbbt_commands/tsv/subset
rbbt-util-5.39.0 share/rbbt_commands/tsv/subset
rbbt-util-5.38.1 share/rbbt_commands/tsv/subset
rbbt-util-5.38.0 share/rbbt_commands/tsv/subset
rbbt-util-5.37.16 share/rbbt_commands/tsv/subset
rbbt-util-5.37.15 share/rbbt_commands/tsv/subset
rbbt-util-5.37.14 share/rbbt_commands/tsv/subset
rbbt-util-5.37.13 share/rbbt_commands/tsv/subset
rbbt-util-5.37.12 share/rbbt_commands/tsv/subset
rbbt-util-5.37.11 share/rbbt_commands/tsv/subset
rbbt-util-5.37.10 share/rbbt_commands/tsv/subset