All pastes #1828964 Raw Edit

Stuff

public text v1 · immutable
#1828964 ·published 2010-03-08 20:05 UTC
rendered paste body
; Converts mm/dd/yyyy HH:mm:ss timestamps in a file to Unix timestamps.
; Lines not recognised as dates and times in this format are skipped.
; Invalid dates, however, are not. (Feb 29 in non-leap years, etc.)
; by Cynthia of irc.rscript.org

; usage: /mmddconvert <file name> | "<file name with spaces>"
; input: <file name>
; output: <file name>.unix.txt

alias mmddconvert {
  fopen Mmdd $$1-
  if ($ferr) {
    echo -aci2 info * Could not open $1- for reading: error $ferr $+ .
    return
  }

  fopen -o Unix $qt($noqt($1-) $+ .unix.txt)
  if ($ferr) {
    echo -aci2 info * Could not open $1- $+ .unix.txt for writing: error $ferr $+ .
    fclose Mmdd
    return
  }

  var %end $false
  while (!%end) {
    var %line $fread(Mmdd), %end $feof

    if ($regex(%line, /^(\d{2})\/(\d{2})\/(\d{4})\x20(\d{2}:\d{2}:\d{2})$/)) {
      %line = $ctime($+($regml(3), -, $regml(1), -, $regml(2)) $regml(4))
    }

    fwrite -n Unix %line
  }

  fclose Mmdd
  fclose Unix
}