Files output by
uuencode(1)
consist of a header line,
followed by a number of body lines,
and a trailer line.
The
uudecode(1)
command
will ignore any lines preceding the header or
following the trailer.
Lines preceding a header must not, of course,
look like a header.
The header line is distinguished by having the first
6 characters
begin\
The word
begin
is followed by a mode (in octal),
and a string which names the remote file.
A space separates the three items in the header line.
The body consists of a number of lines, each at most 62 characters
long (including the trailing newline).
These consist of a character count,
followed by encoded characters,
followed by a newline.
The character count is a single printing character,
and represents an integer, the number of bytes
the rest of the line represents.
Such integers are always in the range from 0 to 63 and can
be determined by subtracting the character space (octal 40)
from the character.
Groups of 3 bytes are stored in 4 characters, 6 bits per character.
All are offset by a space to make the characters printing.
The last line may be shorter than the normal 45 bytes.
If the size is not a multiple of 3, this fact can be determined
by the value of the count on the last line.
Extra garbage will be included to make the character count a multiple
of 4.
The body is terminated by a line with a count of zero.
This line consists of one
ASCII
space.
The trailer line consists of
end
on a line by itself.