Package: pnu-strfile
Installationpip installpnu-strfileSTRFILE(8), UNSTR(8)NAMEstrfile, unstr — create a random access file for storing stringsSYNOPSISstrfile[-Ciorsx]
[-c char]
[--debug]
[--help|-?]
[--version]
[--]
source_file [output_file]unstr[--debug]
[--help|-?]
[--version]
[--]
source_fileDESCRIPTIONThestrfileutility 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 namedsource_file.dat.The options are as follows:OptionsUse-CFlag the file as containing comments. This option cases the STR_COMMENTS bit in the header str_flags field to be set. Comments are designated by two delimiter characters at the beginning of the line, though strfile does not give any special treatment to comment lines.-c charChange the delimiting character from the percent sign to char.-iIgnore case when ordering the strings.-oOrder the strings in alphabetical order. The offset table will be sorted in the alphabetical order of the groups of lines referenced. Any initial non-alphanumeric characters are ignored. This option causes the STR_ORDERED bit in the header str_flags field to be set.-rRandomize 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. The-ooption has precedence over the-roption.-sRun silently; do not give a summary message when finished.-xNote that each alphabetic character in the groups of lines is rotated 13 positions in a simple caesar cypher. This option causes the STR_ROTATED bit in the header str_flags field to be set.--debugEnable debug mode--help|-?Print usage and a short help message and exit--versionPrint version and exit--Options processing terminatorThe format of the header is:#define VERSION 1uint32_tstr_version;/* version number */uint32_tstr_numstr;/* # of strings in the file */uint32_tstr_longlen;/* length of longest string */uint32_tstr_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_tstr_flags;/* bit field for flags */charstr_delim;/* delimiting character */All fields are written in network byte order.The purpose ofunstris to undo the work ofstrfile.
It prints out the strings contained in the filesource_filein the order that they are listed in the header filesource_file.datto standard output.
It is possible to create sorted versions of input files by using-owhenstrfileis run and then usingunstrto dump them out in the table order.ENVIRONMENTThe STRFILE_DEBUG and UNSTR_DEBUG environment variables can also be set to any value to enable debug mode.SEE ALSObyteorder(3),fortune(6)STANDARDSThis re-implementation is fully compatible with the FreeBSD version.It tries to follow thePEP 8style guide forPythoncode.HISTORYContributed byKen Arnold, thestrfileutility first appeared in 4.1cBSD.This re-implementation was made forThe PNU project.LICENSEThis version is available under the3-clause BSD license.AUTHORSThis version was written byHubert Tournier.The man page is derived from theFreeBSD project's one.