require 'csv' require 'optparse' def process_csv(input_file) # Open the input file and process it line by line CSV.foreach(input_file) do |row| # Write only the first two columns to stdout puts row[0..1].to_csv end end def main options = {} # Define the command-line options OptionParser.new do |opts| opts.banner = "Usage: process_csv.rb -i INPUT_FILE" opts.on("-i", "--input INPUT_FILE", "Path to the input CSV file") do |input| options[:input] = input end end.parse! # Check if the input file is provided unless options[:input] puts "Error: Input file is required." puts "Usage: process_csv.rb -i INPUT_FILE" exit 1 end # Process the CSV file begin process_csv(options[:input]) rescue Errno::ENOENT STDERR.puts "Error: File '#{options[:input]}' not found." exit 1 end end # Run the script main if __FILE__ == $PROGRAM_NAME