They're deliberately ambiguous in function. From the standard reference for character coding development (Mackenzie, Charles E. Coded-Character Sets: History and Development. Addison-Wesley Longman Publishing Co., Inc., 1980.), chapter 26 section 1, page 460:
Four additional general-purpose characters, the so-called information separators, were designed into the [ASCII] 7-Bit Code and into EBCDIC. File Separator, Group Separator, Record Separator, and Unit Separator were defined broadly to be used to separate blocks of information. But how they were to be used to separate blocks, what philosophy of file and record structuring was to be used, was intentionally not specified. Such detailed specification would be left to the particular data processing application in which the separators would be used. Initially, a hierarchial [sic] philosophy of structuring information blocks was defined. A “file” was larger than, and would enclose, “groups.” A “group” was larger than, and would enclose, “records.” And a “record” was larger than, and would enclose, “units.” Eventually, the standards committees made this hierarchial [sic] specification optional; that is, the separators need not be used hierarchially [sic], buf if they were, then the hierarchy would be as described above. The standards committees realized that, as with the Device Controls, the unspecificity of the information separators could lead to difficulty of information interchange, but such difficulties could be worked out in the rare instances when they arose.
One example of a standard that uses this outline hierarchy is a now-superseded version of the ANSI/NIST-ITL Standard for interchange of forensic biometric images. The ITL “Traditional Encoding” used the ASCII separators as follows:
␜ File separator character – separates logical records.
␝ Group separator character – separates fields.
␞ Record separator character – separates repeated subfields.
␟ Unit separator character – separates information items.
This usage might appear to contradict the named purpose of the separators, but understanding the intended hierarchy of the character codes makes the choices in the ITL standard more appropriate.
A current example of a data format that uses an ASCII separator control code is JavaScript Object Notation (JSON) text sequence format (RFC 7464, media type application/json-seq
) which places a ASCII Record Separator (0x1E) character before each record.