[comp.unix.questions] Help with AWK

ORNSTEIK%MYIPA@dupont.com (Ian Ornstein x2754 DEC Software Services @ Dupont) (05/07/91)

Mario@wjvax.uucp asked for help with AWK to reformat a mailing list.
He is a solution using MicroEMACS macros:

select-buffer   "Data"
    beginning-of-file
    set-mark
    end-of-file
    kill-region
select-buffer   "Result"
    beginning-of-file
    set-mark
    end-of-file
    kill-region
;
store-procedure Do-one-line
    set-mark
    set $curcol 10
    copy-region
    select-buffer "Result"
    yank
    newline
    select-buffer "Data"
    set-mark
    set $curcol 29
    copy-region
    select-buffer "Result"
    yank
    newline
    select-buffer "Data"
    set-mark
    set $curcol 46
    copy-region
    !if &sequel $kill "                 "
;                      1234567890123456789012345678901234567890
        set %talley 0
    !else
        select-buffer "Result"
        yank
        newline
        select-buffer "Data"
    !endif
    set-mark
    set $curcol 70
    copy-region
    select-buffer "Result"
    yank
;    newline
    select-buffer "Data"
    set-mark
    end-of-line
;   backward-character
    copy-region
    select-buffer "Result"
    previous-word
    search-forward " "
    yank
    2 newline
!endm
;
;
select-buffer   "Data"
insert-file     "puzzle.dat"
set %talley 0
beginning-of-file
end-of-file
set %maxlines   &sub $curline 1
beginning-of-file
!while &less $curline    %maxlines
    run Do-one-line
    select-buffer "Data"
    next-line
    beginning-of-line
!endwhile
unmark-buffer
select-buffer   "Result"
    delete-previous-character
    beginning-of-file
    set-mark
    end-of-file
    trim-line
    write-file      "file.out"
set $discmd TRUE
;exit-emacs

                                        Enjoy!