Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
STRFILE(8)		     System Manager's Manual		      STRFILE(8)

NAME
     strfile, unstr -- create a random access file for storing strings

SYNOPSIS
     strfile [-Ciorsx] [-c char] source_file [output_file]
     unstr source_file

DESCRIPTION
     The  strfile utility reads a file containing groups of lines separated by a
     line containing a single percent `%' sign and creates  a  data  file  which
     contains  a  header structure and a table of file offsets for each group of
     lines.  This allows random access of the strings.

     The  output  file,  if  not  specified  on  the  command  line,  is   named
     source_file.dat.

     The options are as follows:

     -C       Flag  the  file  as  containing  comments.   This option cases the
	      STR_COMMENTS bit in the header str_flags field to  be  set.   Com-
	      ments  are designated by two delimiter characters at the beginning
	      of the line, though strfile does not give any special treatment to
	      comment lines.

     -c char  Change the delimiting character from the percent sign to char.

     -i       Ignore case when ordering the strings.

     -o       Order the strings in alphabetical order.	The offset table will be
	      sorted in the alphabetical order of the  groups  of  lines  refer-
	      enced.  Any initial non-alphanumeric characters are ignored.  This
	      option causes the STR_ORDERED bit in the header str_flags field to
	      be set.

     -r       Randomize access to the strings.	Entries in the offset table will
	      be randomly ordered.  This option causes the STR_RANDOM bit in the
	      header str_flags field to be set.

     -s       Run silently; do not give a summary message when finished.

     -x       Note  that each alphabetic character in the groups of lines is ro-
	      tated 13 positions in a simple caesar cypher.  This option  causes
	      the STR_ROTATED bit in the header str_flags field to be set.

     The format of the header is:

     #define VERSION 1
     uint32_t	     str_version;    /* version number */
     uint32_t	     str_numstr;     /* # of strings in the file */
     uint32_t	     str_longlen;    /* length of longest string */
     uint32_t	     str_shortlen;   /* length of shortest string */
     #define STR_RANDOM      0x1     /* randomized pointers */
     #define STR_ORDERED     0x2     /* ordered pointers */
     #define STR_ROTATED     0x4     /* rot-13'd text */
     #define STR_COMMENTS    0x8     /* embedded comments */
     uint32_t	     str_flags;      /* bit field for flags */
     char	     str_delim;      /* delimiting character */

     All fields are written in network byte order.

     The  purpose  of  unstr  is to undo the work of strfile.  It prints out the
     strings contained in the file source_file in the order that they are listed
     in the header file source_file.dat to standard output.  It is  possible  to
     create  sorted  versions of input files by using -o when strfile is run and
     then using unstr to dump them out in the table order.

FILES
     strfile.dat  default output file.

SEE ALSO
     byteorder(3), fortune(6)

HISTORY
     The strfile utility first appeared in 4.4BSD.

FreeBSD ports 15.quarterly	February 17, 2005		      STRFILE(8)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=strfile&manpath=FreeBSD+15.1-RELEASE+and+Ports.quarterly>

home | help