A field is the written form of an association between a label
and a value. For example, if we wanted to associate the label
Name
with the value Ada Lovelace
we would write:
Name: Ada Lovelace
The separator between the field name and the field value is a colon followed by a blank character (space and tabs, but not newlines). The name of the field shall begin in the first column of the line.
A field name is a sequence of alphanumeric characters plus
underscores (_
), starting with a letter or the character
%
. The regular expression denoting a field name is:
[a-zA-Z%][a-zA-Z0-9_]*
Field names are case-sensitive. Foo
and foo
are
different field names.
The following list contains valid field names (the final colon is not part of the names):
Foo: foo: A23: ab1: A_Field:
The value of a field is a sequence of characters terminated by a
single newline character (\n
).
Sometimes a value is too long to fit in the usual width of terminals and screens. In that case, depending on the specific tool used to access the file, the readability of the data would not be that good. It is therefore possible to physically split a logical line by escaping a newline with a backslash character, as in:
LongLine: This is a quite long value \ comprising a single unique logical line \ split in several physical lines.
The sequence \n
(newline) +
(PLUS) and an optional
_
(SPACE) is interpreted as a newline when found in a field
value. For example, the C string "bar1\nbar2\n bar3"
would be
encoded in the following way in a field value:
Foo: bar1 + bar2 + bar3