Sha256: d70e308113cd0df0ff6d001a4777c5d1172b4ab576b93f4dd0e07058d9875051
Contents?: true
Size: 1.95 KB
Versions: 14
Compression:
Stored size: 1.95 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 Inspect a TSV file $ rbbt tsv info [options] file.tsv Display summary information. Works with Tokyocabinet HDB and BDB as well. -tch--tokyocabinet File is a TC HDB -tcb--tokyocabinet_bd File is a TC BDB -t--type* Type of tsv (single, list, double, flat) -hh--header_hash* Change the character used to mark the header line (defaults to #) -k--key_field* Change the key field -f--fields* Change the fields to load -s--sep* Change the fields separator (default TAB) -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? options[:fields] = options[:fields].split(/,\|/) if options[:fields] options[:header_hash] = options["header_hash"] options[:sep] = options["sep"] 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 header = TSV.parse_header(Open.open(file), options) puts "File: #{ file }" puts "Type: #{header.type}" puts "Namespace: #{header.namespace}" puts "Key: #{Log.color :yellow, header.key_field}" puts "Fields: " if header.fields.nil? else header.fields.each_with_index do |f,i| puts " - #{Log.color :cyan, i + 1}: " << Log.color(:yellow, f) end end if String === file and not Open.remote? file and File.exists? file rows = `wc -l '#{ file }' 2>/dev/null|cut -f 1 -d' '` else rows = "Could not get rows of #{Misc.fingerprint file}" end puts "Rows: #{Log.color :blue, rows}" parts = [] header.first_line.split(header.sep).each_with_index{|p,i| parts << (Log.color(:cyan, "(#{i}) ") << p.strip) } puts parts * "\t" puts end
Version data entries
14 entries across 14 versions & 1 rubygems