Differences between version 2 and previous revision of KnowledgeBase/Scripts/interlace.rb.

Other diffs: Previous Major Revision, Previous Author

Newer page: version 2 Last edited on Saturday, 7 November 2009 19:37:10 by CyberLeo Revert
Older page: version 1 Last edited on Saturday, 7 November 2009 19:29:32 by CyberLeo Revert
@@ -3,9 +3,9 @@
  
 def pebkac(msg = nil) 
  me = File.basename($0) 
  STDERR.printf("%s: %s\n\n", me, msg) if msg 
- STDERR.puts "Interleaves two files line-by-line." 
+ STDERR.puts "Interlaces two files line-by-line." 
  STDERR.puts "Writes combined file to STDOUT." 
  exit(1) 
 end 
  

version 2

#!/usr/bin/env ruby

def pebkac(msg = nil)
  me = File.basename($0)
  STDERR.printf("%s: %s\n\n", me, msg) if msg
  STDERR.puts "Interlaces two files line-by-line."
  STDERR.puts "Writes combined file to STDOUT."
  exit(1)
end

pebkac if ARGV.length < 2

src1 = ARGV.shift
src2 = ARGV.shift

pebkac('%s: no such file or directory' % src1) unless File.readable?(src1)
pebkac('%s: no such file or directory' % src2) unless File.readable?(src2)

f1 = File.open(src1, 'r')
f2 = File.open(src2, 'r')

while !f1.eof || !f2.eof
  s1 = f1.gets
  s2 = f2.gets
  STDOUT.puts(s1) unless s1.nil?
  STDOUT.puts(s2) unless s2.nil?
end

STDOUT.flush
f2.close
f1.close