Warning: this is an htmlized version!
The original is here, and the conversion rules are here. |
-- This file: -- http://anggtwu.net/LUA/LogsPdfizados1.lua.html -- http://anggtwu.net/LUA/LogsPdfizados1.lua -- (find-angg "LUA/LogsPdfizados1.lua") -- Author: Eduardo Ochs <eduardoochs@gmail.com> -- -- (defun e () (interactive) (find-angg "LUA/LogsPdfizados1.lua")) -- (find-es "ead" "logs-pdfizados") -- «.pdfs» (to "pdfs") -- «.PdfName» (to "PdfName") -- «.Marked» (to "Marked") -- «.find-arounds» (to "find-arounds") -- «pdfs» (to ".pdfs") pdfs = [[ 2020.1-C2/C2-C1-RCN-PURO-2020.1-2.pdf 2020.1-C2/C2-C1-RCN-PURO-2020.1-3.pdf 2020.1-C2/C2-C1-RCN-PURO-2020.1.pdf 2020.1-C2/C2-E1-RCN-PURO-2020.1-2.pdf 2020.1-C2/C2-E1-RCN-PURO-2020.1-3.pdf 2020.1-C2/C2-E1-RCN-PURO-2020.1.pdf 2020.1-C3/C3-M1-RCN-PURO-2020.1-2.pdf 2020.1-C3/C3-M1-RCN-PURO-2020.1-3.pdf 2020.1-C3/C3-M1-RCN-PURO-2020.1-4.pdf 2020.1-C3/C3-M1-RCN-PURO-2020.1.pdf 2020.2-C2/C2-C1-RCN-PURO-2020.2-2.pdf 2020.2-C2/C2-C1-RCN-PURO-2020.2.pdf 2020.2-C2/C2-E1-RCN-PURO-2020.2-2.pdf 2020.2-C2/C2-E1-RCN-PURO-2020.2-3.pdf 2020.2-C2/C2-E1-RCN-PURO-2020.2.pdf 2020.2-C3/C3-M1-RCN-PURO-2020.2-2.pdf 2020.2-C3/C3-M1-RCN-PURO-2020.2.pdf 2021.1-C2/C2-C1-RCN-PURO-2021.1-2.pdf 2021.1-C2/C2-C1-RCN-PURO-2021.1-3.pdf 2021.1-C2/C2-C1-RCN-PURO-2021.1.pdf 2021.1-C2/C2-E1-RCN-PURO-2021.1-2.pdf 2021.1-C2/C2-E1-RCN-PURO-2021.1-3.pdf 2021.1-C2/C2-E1-RCN-PURO-2021.1-4.pdf 2021.1-C2/C2-E1-RCN-PURO-2021.1-5.pdf 2021.1-C2/C2-E1-RCN-PURO-2021.1.pdf 2021.1-C3/C3-M1-RCN-PURO-2021.1-2.pdf 2021.1-C3/C3-M1-RCN-PURO-2021.1.pdf 2021.2-C2/C2-C1-RCN-PURO-2021.2-2.pdf 2021.2-C2/C2-C1-RCN-PURO-2021.2.pdf 2021.2-C2/C2-E1-RCN-PURO-2021.2-2.pdf 2021.2-C2/C2-E1-RCN-PURO-2021.2-3.pdf 2021.2-C2/C2-E1-RCN-PURO-2021.2.pdf 2021.2-C3/C3-M1-RCN-PURO-2021.2-2.pdf 2021.2-C3/C3-M1-RCN-PURO-2021.2-3.pdf 2021.2-C3/C3-M1-RCN-PURO-2021.2-4.pdf 2021.2-C3/C3-M1-RCN-PURO-2021.2.pdf ]] yys_to_letter = { ["201"] = "a", ["202"] = "b", ["211"] = "c", ["212"] = "d", } -- «PdfName» (to ".PdfName") PdfName = Class { type = "PdfName", parse = function (fname) local fmt = "20(..).(.)%-C(.)/...(.).................(.*)" local yy,s,m,t,rest = fname:match(fmt) local n0 = rest:match("[0-9]") local n = n0 or "1" return yy,s,m,t,rest,n0,n end, from = function (fname) local yy,s,m,t,rest,n0,n = PdfName.parse(fname) return PdfName {fname=fname, yy=yy, s=s, m=m, t=t, n=n} end, __tostring = function (pn) return pn:short() .. ": " .. pn.fname end, __index = { letter = function (pn) return yys_to_letter[pn.yy .. pn.s] end, short1 = function (pn) local letter = pn:letter() local Turma = pn.t local turma = Turma:lower() return pn.m .. letter .. turma .. pn.n end, short = function (pn) local fmt = "20%s.%s-C%s-%s1-%s" return format(fmt, pn.yy, pn.s, pn.m, pn.t, pn.n) end, cp = function (pn, dir) local fmt = "cp -v ~/%-40s %s%s.pdf" return format(fmt, pn.fname, dir or "", pn:short()) end, }, } --[[ * (eepitch-lua51) * (eepitch-kill) * (eepitch-lua51) dofile "LogsPdfizados1.lua" for li in pdfs:gmatch("([!-~]+)") do pn = PdfName.from(li) -- print(pn) print(pn:cp("/tmp/quarentena/")) end * (eepitch-shell) * (eepitch-kill) * (eepitch-shell) # (find-fline "/tmp/quarentena/") rm -Rv /tmp/quarentena/ mkdir /tmp/quarentena/ cd /tmp/quarentena/ cp -v ~/2020.1-C2/C2-C1-RCN-PURO-2020.1-2.pdf /tmp/quarentena/2ac2.pdf cp -v ~/2020.1-C2/C2-C1-RCN-PURO-2020.1-3.pdf /tmp/quarentena/2ac3.pdf cp -v ~/2020.1-C2/C2-C1-RCN-PURO-2020.1.pdf /tmp/quarentena/2ac1.pdf cp -v ~/2020.1-C2/C2-E1-RCN-PURO-2020.1-2.pdf /tmp/quarentena/2ae2.pdf cp -v ~/2020.1-C2/C2-E1-RCN-PURO-2020.1-3.pdf /tmp/quarentena/2ae3.pdf cp -v ~/2020.1-C2/C2-E1-RCN-PURO-2020.1.pdf /tmp/quarentena/2ae1.pdf cp -v ~/2020.1-C3/C3-M1-RCN-PURO-2020.1-2.pdf /tmp/quarentena/3am2.pdf cp -v ~/2020.1-C3/C3-M1-RCN-PURO-2020.1-3.pdf /tmp/quarentena/3am3.pdf cp -v ~/2020.1-C3/C3-M1-RCN-PURO-2020.1-4.pdf /tmp/quarentena/3am4.pdf cp -v ~/2020.1-C3/C3-M1-RCN-PURO-2020.1.pdf /tmp/quarentena/3am1.pdf cp -v ~/2020.2-C2/C2-C1-RCN-PURO-2020.2-2.pdf /tmp/quarentena/2bc2.pdf cp -v ~/2020.2-C2/C2-C1-RCN-PURO-2020.2.pdf /tmp/quarentena/2bc1.pdf cp -v ~/2020.2-C2/C2-E1-RCN-PURO-2020.2-2.pdf /tmp/quarentena/2be2.pdf cp -v ~/2020.2-C2/C2-E1-RCN-PURO-2020.2-3.pdf /tmp/quarentena/2be3.pdf cp -v ~/2020.2-C2/C2-E1-RCN-PURO-2020.2.pdf /tmp/quarentena/2be1.pdf cp -v ~/2020.2-C3/C3-M1-RCN-PURO-2020.2-2.pdf /tmp/quarentena/3bm2.pdf cp -v ~/2020.2-C3/C3-M1-RCN-PURO-2020.2.pdf /tmp/quarentena/3bm1.pdf cp -v ~/2021.1-C2/C2-C1-RCN-PURO-2021.1-2.pdf /tmp/quarentena/2cc2.pdf cp -v ~/2021.1-C2/C2-C1-RCN-PURO-2021.1-3.pdf /tmp/quarentena/2cc3.pdf cp -v ~/2021.1-C2/C2-C1-RCN-PURO-2021.1.pdf /tmp/quarentena/2cc1.pdf cp -v ~/2021.1-C2/C2-E1-RCN-PURO-2021.1-2.pdf /tmp/quarentena/2ce2.pdf cp -v ~/2021.1-C2/C2-E1-RCN-PURO-2021.1-3.pdf /tmp/quarentena/2ce3.pdf cp -v ~/2021.1-C2/C2-E1-RCN-PURO-2021.1-4.pdf /tmp/quarentena/2ce4.pdf cp -v ~/2021.1-C2/C2-E1-RCN-PURO-2021.1-5.pdf /tmp/quarentena/2ce5.pdf cp -v ~/2021.1-C2/C2-E1-RCN-PURO-2021.1.pdf /tmp/quarentena/2ce1.pdf cp -v ~/2021.1-C3/C3-M1-RCN-PURO-2021.1-2.pdf /tmp/quarentena/3cm2.pdf cp -v ~/2021.1-C3/C3-M1-RCN-PURO-2021.1.pdf /tmp/quarentena/3cm1.pdf cp -v ~/2021.2-C2/C2-C1-RCN-PURO-2021.2-2.pdf /tmp/quarentena/2dc2.pdf cp -v ~/2021.2-C2/C2-C1-RCN-PURO-2021.2.pdf /tmp/quarentena/2dc1.pdf cp -v ~/2021.2-C2/C2-E1-RCN-PURO-2021.2-2.pdf /tmp/quarentena/2de2.pdf cp -v ~/2021.2-C2/C2-E1-RCN-PURO-2021.2-3.pdf /tmp/quarentena/2de3.pdf cp -v ~/2021.2-C2/C2-E1-RCN-PURO-2021.2.pdf /tmp/quarentena/2de1.pdf cp -v ~/2021.2-C3/C3-M1-RCN-PURO-2021.2-2.pdf /tmp/quarentena/3dm2.pdf cp -v ~/2021.2-C3/C3-M1-RCN-PURO-2021.2-3.pdf /tmp/quarentena/3dm3.pdf cp -v ~/2021.2-C3/C3-M1-RCN-PURO-2021.2-4.pdf /tmp/quarentena/3dm4.pdf cp -v ~/2021.2-C3/C3-M1-RCN-PURO-2021.2.pdf /tmp/quarentena/3dm1.pdf * (eepitch-shell) * (eepitch-kill) * (eepitch-shell) # (find-fline "/tmp/quarentena/") rm -Rv /tmp/quarentena/ mkdir /tmp/quarentena/ cd /tmp/quarentena/ cp -v ~/2020.1-C2/C2-C1-RCN-PURO-2020.1-2.pdf /tmp/quarentena/2020.1-C2-C1-2.pdf cp -v ~/2020.1-C2/C2-C1-RCN-PURO-2020.1-3.pdf /tmp/quarentena/2020.1-C2-C1-3.pdf cp -v ~/2020.1-C2/C2-C1-RCN-PURO-2020.1.pdf /tmp/quarentena/2020.1-C2-C1-1.pdf cp -v ~/2020.1-C2/C2-E1-RCN-PURO-2020.1-2.pdf /tmp/quarentena/2020.1-C2-E1-2.pdf cp -v ~/2020.1-C2/C2-E1-RCN-PURO-2020.1-3.pdf /tmp/quarentena/2020.1-C2-E1-3.pdf cp -v ~/2020.1-C2/C2-E1-RCN-PURO-2020.1.pdf /tmp/quarentena/2020.1-C2-E1-1.pdf cp -v ~/2020.1-C3/C3-M1-RCN-PURO-2020.1-2.pdf /tmp/quarentena/2020.1-C3-M1-2.pdf cp -v ~/2020.1-C3/C3-M1-RCN-PURO-2020.1-3.pdf /tmp/quarentena/2020.1-C3-M1-3.pdf cp -v ~/2020.1-C3/C3-M1-RCN-PURO-2020.1-4.pdf /tmp/quarentena/2020.1-C3-M1-4.pdf cp -v ~/2020.1-C3/C3-M1-RCN-PURO-2020.1.pdf /tmp/quarentena/2020.1-C3-M1-1.pdf cp -v ~/2020.2-C2/C2-C1-RCN-PURO-2020.2-2.pdf /tmp/quarentena/2020.2-C2-C1-2.pdf cp -v ~/2020.2-C2/C2-C1-RCN-PURO-2020.2.pdf /tmp/quarentena/2020.2-C2-C1-1.pdf cp -v ~/2020.2-C2/C2-E1-RCN-PURO-2020.2-2.pdf /tmp/quarentena/2020.2-C2-E1-2.pdf cp -v ~/2020.2-C2/C2-E1-RCN-PURO-2020.2-3.pdf /tmp/quarentena/2020.2-C2-E1-3.pdf cp -v ~/2020.2-C2/C2-E1-RCN-PURO-2020.2.pdf /tmp/quarentena/2020.2-C2-E1-1.pdf cp -v ~/2020.2-C3/C3-M1-RCN-PURO-2020.2-2.pdf /tmp/quarentena/2020.2-C3-M1-2.pdf cp -v ~/2020.2-C3/C3-M1-RCN-PURO-2020.2.pdf /tmp/quarentena/2020.2-C3-M1-1.pdf cp -v ~/2021.1-C2/C2-C1-RCN-PURO-2021.1-2.pdf /tmp/quarentena/2021.1-C2-C1-2.pdf cp -v ~/2021.1-C2/C2-C1-RCN-PURO-2021.1-3.pdf /tmp/quarentena/2021.1-C2-C1-3.pdf cp -v ~/2021.1-C2/C2-C1-RCN-PURO-2021.1.pdf /tmp/quarentena/2021.1-C2-C1-1.pdf cp -v ~/2021.1-C2/C2-E1-RCN-PURO-2021.1-2.pdf /tmp/quarentena/2021.1-C2-E1-2.pdf cp -v ~/2021.1-C2/C2-E1-RCN-PURO-2021.1-3.pdf /tmp/quarentena/2021.1-C2-E1-3.pdf cp -v ~/2021.1-C2/C2-E1-RCN-PURO-2021.1-4.pdf /tmp/quarentena/2021.1-C2-E1-4.pdf cp -v ~/2021.1-C2/C2-E1-RCN-PURO-2021.1-5.pdf /tmp/quarentena/2021.1-C2-E1-5.pdf cp -v ~/2021.1-C2/C2-E1-RCN-PURO-2021.1.pdf /tmp/quarentena/2021.1-C2-E1-1.pdf cp -v ~/2021.1-C3/C3-M1-RCN-PURO-2021.1-2.pdf /tmp/quarentena/2021.1-C3-M1-2.pdf cp -v ~/2021.1-C3/C3-M1-RCN-PURO-2021.1.pdf /tmp/quarentena/2021.1-C3-M1-1.pdf cp -v ~/2021.2-C2/C2-C1-RCN-PURO-2021.2-2.pdf /tmp/quarentena/2021.2-C2-C1-2.pdf cp -v ~/2021.2-C2/C2-C1-RCN-PURO-2021.2.pdf /tmp/quarentena/2021.2-C2-C1-1.pdf cp -v ~/2021.2-C2/C2-E1-RCN-PURO-2021.2-2.pdf /tmp/quarentena/2021.2-C2-E1-2.pdf cp -v ~/2021.2-C2/C2-E1-RCN-PURO-2021.2-3.pdf /tmp/quarentena/2021.2-C2-E1-3.pdf cp -v ~/2021.2-C2/C2-E1-RCN-PURO-2021.2.pdf /tmp/quarentena/2021.2-C2-E1-1.pdf cp -v ~/2021.2-C3/C3-M1-RCN-PURO-2021.2-2.pdf /tmp/quarentena/2021.2-C3-M1-2.pdf cp -v ~/2021.2-C3/C3-M1-RCN-PURO-2021.2-3.pdf /tmp/quarentena/2021.2-C3-M1-3.pdf cp -v ~/2021.2-C3/C3-M1-RCN-PURO-2021.2-4.pdf /tmp/quarentena/2021.2-C3-M1-4.pdf cp -v ~/2021.2-C3/C3-M1-RCN-PURO-2021.2.pdf /tmp/quarentena/2021.2-C3-M1-1.pdf * (eepitch-shell) * (eepitch-kill) * (eepitch-shell) # (find-fline "/tmp/quarentena/") cd /tmp/quarentena/ for i in *.pdf; do echo $(basename $i .pdf); done for i in *.pdf; do echo pdftotext -layout $i $(basename $i .pdf).txt pdftotext -layout $i $(basename $i .pdf).txt done # (defvar ee-pdftotext-program "pdftotext") # (code-c-d "quarentena" "/tmp/quarentena/") # (find-quarentenafile "") # (setq last-kbd-macro (kbd "RET M-o <down>")) # (find-quarentenagrep "grep --color=auto -nH --null -e mundo *.txt") # (find-quarentenagrep "grep --color=auto -nH --null -e melhor *.txt") # (find-quarentenagrep "grep --color=auto -nH --null -e prioridade *.txt") # (find-quarentenagrep "grep --color=auto -nH --null -e antiga *.txt") # (find-quarentenagrep "grep --color=auto -nH --null -e hip *.txt") # (find-quarentenagrep "grep --color=auto -nH --null -e apag *.txt") -- (find-quarentenafile "2de1.txt" "aulas via meet ou zoom") -- (find-quarentenafile "2de1.txt" "1) tenham dúvidas, 2) venham discutir") -- (find-quarentenafile "3am2.txt" "todo mundo aprendeu na marra") -- (find-quarentenafile "3dm2.txt" "MUITISSIMO bem vindas") -- (find-quarentenafile "3dm4.txt" "me ajudarem a entender a sua pergunta") -- (find-quarentenafile "2ae2.txt" "Seus chuting skills estao melhores") -- (find-quarentenafile "2cc2.txt" "descobrir exatamente onde estao as duvidas") --]] -- «Marked» (to ".Marked") Marked = Class { type = "Marked", from = function (fname) local lines = splitlines(readfile(fname)) local status = {} for i=1,#lines do status[i] = 0 end local npage,page = 1,{} for i=1,#lines do if lines[i]:match("\f") then npage = npage + 1 end page[i] = npage end return Marked {fname=fname, lines=lines, status=status, page=page} end, __index = { nlines = function (m) return #m.lines end, mark = function (m, n) if m.status[n] then m.status[n] = 1 end end, markaround = function (m, n, radius) for i=n-radius,n+radius do m:mark(i) end end, markarounds = function (m, pat, radius) for i=1,#m.lines do if m.lines[i]:match(pat) then m:markaround(i, radius) end end return m end, abbr = function (m, n) return m.fname:gsub(".txt", "")..m.page[n] end, abbrp = function (m, n) return m:abbr(n).." "..n end, prefix = function (m, n) return m.fname..":"..i..": " end, prefix = function (m, n) return m:abbrp(n).." " end, print = function (m) for i=1,m:nlines() do if m.status[i] == 1 then print(m:prefix(i)..m.lines[i]) end end return m end, }, } --[[ * (eepitch-lua51) * (eepitch-kill) * (eepitch-lua51) dofile "LogsPdfizados1.lua" chdir "~/logs-pdfizados/" -- fnames = getoutput "echo ?????.txt" fnames = getoutput "echo *.txt" = fnames for _,fname in ipairs(split(fnames)) do print(fname) m = Marked.from(fname) m:markarounds("prova", 2):print() end PP(m.page) = m:abbr(440) --]] printarounds = function (pat) chdir "~/logs-pdfizados/" -- fnames = getoutput "echo ?????.txt" fnames = getoutput "echo *.txt" for _,fname in ipairs(split(fnames)) do -- print(fname) m = Marked.from(fname) m:markarounds(pat, 2):print() end end args = {...} if args[1] == "-a" then printarounds(args[2]) end -- «find-arounds» (to ".find-arounds") -- (find-angg ".emacs" "find-arounds") --[[ ;; (find-sh "lua5.1 ~/LUA/LogsPdfizados1.lua -a 'tipo area'") (defun find-arounds (pat &rest rest) (let* ((fmt "lua5.1 ~/LUA/LogsPdfizados1.lua -a '%s'")) (apply 'find-sh (format fmt pat) rest))) --]] -- Local Variables: -- coding: utf-8-unix -- End: