#!/usr/bin/ruby def deg(s, plus, minus) m = (s.to_f * 60 + 0.5).floor d = m / 60 m -= d * 60 format('%u %02u%s', d.abs, m, (d < 0 ? minus : plus)) end ilat = ARGV.shift.to_i ilon = ARGV.shift.to_i for line in ARGF row = line.chomp.split(/\|/) row[ilat] = deg(row[ilat], 'N', 'S') row[ilon] = deg(row[ilon], 'E', 'S') puts row.join('|') end