Sha256: 99daf64d1a58c727b896af5a96565cb75228879e43cc0b60f9e31b867c11b853

Contents?: true

Size: 824 Bytes

Versions: 17

Compression:

Stored size: 824 Bytes

Contents

#!/usr/bin/env ruby

require "find"
require "team_effort"

def do_cmd(cmd)
  system cmd
  status = $?
  raise "'#{cmd}' failed with #{status}" if !status.success?
end

files_dir_path = ARGV[0]
output_file = ARGV[1]
files = Find.find(files_dir_path).reject { |p| FileTest.directory?(p) || File.basename(p) == "log" }

# 1. capture the header from the first file
do_cmd "head -n 1 #{files.first} > header"

# 2. strip the header from all files
TeamEffort.work(files) do |file_path|
  file = File.basename(file_path)
  do_cmd "tail -n +2 #{file_path} > #{file}"
end

# 3. concate the header and all files
tmp_files = files.map{|f| File.basename(f)}
(["header"] + tmp_files).each_slice(20) do |files_to_concat|
  file_list = files_to_concat.join(' ')
  do_cmd "cat #{file_list} >> #{output_file}"
  do_cmd "rm #{file_list}"
end

Version data entries

17 entries across 17 versions & 1 rubygems

Version Path
advance-0.4.11 bin/concat_csv.rb
advance-0.4.10 bin/concat_csv.rb
advance-0.4.8 bin/concat_csv.rb
advance-0.4.7 bin/concat_csv.rb
advance-0.4.6 bin/concat_csv.rb
advance-0.4.5 bin/concat_csv.rb
advance-0.4.4 bin/concat_csv.rb
advance-0.4.3 bin/concat_csv.rb
advance-0.4.2 bin/concat_csv.rb
advance-0.4.1 bin/concat_csv.rb
advance-0.3.18 bin/concat_csv.rb
advance-0.3.16 bin/concat_csv.rb
advance-0.3.15 bin/concat_csv.rb
advance-0.3.14 bin/concat_csv.rb
advance-0.3.13 bin/concat_csv.rb
advance-0.3.12 bin/concat_csv.rb
advance-0.3.11 bin/concat_csv.rb