pro hist_count, list, default=default , outfil=outfil
;
;
progver = 'HIST_COUNT  Ver 1.1

if (keyword_set(default)) then begin
    list = ['mdipict', 'mdiltc', 'mdifocus', 'mdiiss', 'mdidust', 'mdilaser', $
    'mdidtune', 'big', 'supersun', 'vfdlscan', 'mtmtune', 'maplaser', 'mapgrad', $
    'mdiprot', 'mdimrot', 'mdipdist', $
    '" mdion "', 'lfdclose', 'mbfdbc', 'lfdopen', 'mbfd1o']
    outfil = concat_dir(getenv('MDI_CAL_TXT'), 'cmd_hist_count.txt')
end
if (n_elements(list) eq 0) then begin
    print, 'Enter the list of items to search for separated by ","'
    lin = 'mdipict, mdiltc, mdifocus'
    input, 'Search list: ', list, lin
    list = str2arr(list, delim=',')
end
;
if (n_elements(outfil) eq 0) then outfil = 'hist_count.txt'
infil = file_list(getenv('MDI_CAL_TXT'), 'cmd_hist.9*')
n = n_elements(infil)
;
spawn, 'head -1000 ' + infil(0), result
i = 4       ;skip header
while (strpos(result(i), '-9') eq -1) do i=i+1
sttim = strmid(result(i), strpos(result(i), '-9')-6, 18)
;
spawn, 'tail -1000 ' + infil(n-1), result
i = n_elements(result)-1
while (strpos(result(i), '-9') eq -1) do i=i-1
entim = strmid(result(i), strpos(result(i), '-9')-6, 18)
;
print, 'Saving results to: ', outfil
file_delete, outfil
openw, lun, outfil, /get_lun
printf, lun, progver + '    Program Run: ' + !stime
printf, lun, ' '
printf, lun, 'Input file spans: ' + sttim + ' to ' + entim
printf, lun, ' '
;
break_file, infil, dsk_log, dir, filnam, ext
fmt0 = '(1x, 15x, ' + strtrim(n,2) + 'a6, a8)'
fmt  = '(1x, a15, ' + strtrim(n,2) + 'i6, i8)'
tit = string(strmid(ext, 1, 4), '  Total', format=fmt0)
print, tit
printf, lun, tit
printf, lun, ' '
;
for i=0,n_elements(list)-1 do begin
    out = intarr(n)
    for ifil=0,n-1 do begin ;for each file
    cmd = 'grep ' + list(i) + ' ' + infil(ifil) + ' | wc'
    spawn, cmd, result
    arr = str2arr(strtrim(strcompress(result(0)),2), delim=' ')
    out(ifil) = arr(0)
    end
    str = string(list(i)+'                ', out, total(out), format=fmt)
    print, str
    printf, lun, str
end
;
free_lun, lun
end