fork download
  1. require "csv"
  2. require "stringio"
  3.  
  4. contents = CSV.new(ARGF, headers: true).read
  5.  
  6. contents.each do |row|
  7. next unless row["DetailActiveAddressLine1"] =~ /PO Box|^[[:digit:]]/i
  8.  
  9. row["DetailActiveAddressLine1"], row["DetailActiveAddressLine2"] =
  10. row["DetailActiveAddressLine2"], row["DetailActiveAddressLine1"]
  11. end
  12.  
  13. sio = StringIO.new
  14. sio.write(contents.to_csv(force_quotes: true))
  15.  
  16. sio.rewind
  17. puts sio.read
Success #stdin #stdout 0.02s 10832KB
stdin
"DetailActiveAddressLine1","DetailActiveAddressLine2"
"Unit 203","3235 Oakley Station Blvd"
"585 S Hickory St",
stdout
"DetailActiveAddressLine1","DetailActiveAddressLine2"
"Unit 203","3235 Oakley Station Blvd"
"","585 S Hickory St"