BEGIN { print "open ftp.nvg.unit.no"; print "rsc"; print "cd BBC"; print "bin"; print "hash"; pfile = ""; phost = ""; psize = 0; ptime = 0; } { host = $1; dir = $2; name = $3; time = $4; size = $5; file = $2"/"$3; if (pfile != "") { if (file == pfile) { if (host == ">") { if (!match(size, /dir/) && !match(size, /link/) && !match(pfile, /^incoming\//) && !match(pfile, /~/)) { print "cd " dir; print "put " file; print "cd ~/BBC"; } } file = ""; } else { if (phost == ">") { if (match(psize, /dir/)) print "mkdir " pfile; else if (!match(size, /link/) && !match(pfile, /^incoming\//) && !match(pfile, /~/)) { print "cd " pdir; print "put " pfile; print "cd ~/BBC"; } } else { if (match(psize, /dir/)) print "rmdir " pfile; else { if (match(pfile, /^incoming\//)) print "get " pfile; if (!match(pfile, /^cgi\//) && !match(pfile, /^t\//)) print "del " pfile; } } } } else { } phost = host; pname = name; pdir = dir; pfile = file; ptime = time; psize = size; } END { if (pfile != "") { if (file == pfile) { if (host == ">") { if (!match(size, /dir/) && !match(size, /link/) && !match(pfile, /^incoming\//) && !match(pfile, /~/)) { print "cd " dir; print "put " file; print "cd ~/BBC"; } } file = ""; } else { if (phost == ">") { if (match(psize, /dir/)) print "mkdir " pfile; else if (!match(size, /link/) && !match(pfile, /^incoming\//) && !match(pfile, /~/)) { print "cd " dir; print "put " pfile; print "cd ~/BBC"; } } else { if (match(psize, /dir/)) print "rmdir " pfile; else { if (match(pfile, /^incoming\//)) print "get " pfile; if (!match(pfile, /^cgi\//) && !match(pfile, /^t\//)) print "del " pfile; } } } } print "quit"; }