\chapentry{Introduction}{1}{1} \chapentry{Common options}{2}{2} \chapentry{Output of entire files}{3}{3} \secentry{\code {cat}: Concatenate and write files}{3}{1}{3} \secentry{\code {tac}: Concatenate and write files in reverse}{3}{2}{4} \secentry{\code {nl}: Number lines and write files}{3}{3}{4} \secentry{\code {od}: Write files in octal or other formats}{3}{4}{6} \chapentry{Formatting file contents}{4}{10} \secentry{\code {fmt}: Reformat paragraph text}{4}{1}{10} \secentry{\code {pr}: Paginate or columnate files for printing}{4}{2}{11} \secentry{\code {fold}: Wrap input lines to fit in specified width}{4}{3}{15} \chapentry{Output of parts of files}{5}{17} \secentry{\code {head}: Output the first part of files}{5}{1}{17} \secentry{\code {tail}: Output the last part of files}{5}{2}{17} \secentry{\code {split}: Split a file into fixed-size pieces}{5}{3}{20} \secentry{\code {csplit}: Split a file into context-determined pieces}{5}{4}{21} \chapentry{Summarizing files}{6}{23} \secentry{\code {wc}: Print byte, word, and line counts}{6}{1}{23} \secentry{\code {sum}: Print checksum and block counts}{6}{2}{23} \secentry{\code {cksum}: Print CRC checksum and byte counts}{6}{3}{24} \secentry{\code {md5sum}: Print or check message-digests}{6}{4}{24} \chapentry{Operating on sorted files}{7}{26} \secentry{\code {sort}: Sort text files}{7}{1}{26} \secentry{\code {uniq}: Uniquify files}{7}{2}{29} \secentry{\code {comm}: Compare two sorted files line by line}{7}{3}{31} \secentry{\code {tsort}: Topological sort}{7}{4}{31} \secentry{\code {ptx}: Produce permuted indexes}{7}{5}{32} \subsecentry{General options}{7}{5}{1}{32} \subsecentry{Charset selection}{7}{5}{2}{33} \subsecentry{Word selection and input processing}{7}{5}{3}{33} \subsecentry{Output formatting}{7}{5}{4}{35} \subsecentry{The GNU extensions to \code {ptx}}{7}{5}{5}{37} \chapentry{Operating on fields within a line}{8}{39} \secentry{\code {cut}: Print selected parts of lines}{8}{1}{39} \secentry{\code {paste}: Merge lines of files}{8}{2}{39} \secentry{\code {join}: Join lines on a common field}{8}{3}{40} \chapentry{Operating on characters}{9}{42} \secentry{\code {tr}: Translate, squeeze, and/or delete characters}{9}{1}{42} \subsecentry{Specifying sets of characters}{9}{1}{1}{42} \subsecentry{Translating}{9}{1}{2}{44} \subsecentry{Squeezing repeats and deleting}{9}{1}{3}{44} \subsecentry{Warning messages}{9}{1}{4}{45} \secentry{\code {expand}: Convert tabs to spaces}{9}{2}{45} \secentry{\code {unexpand}: Convert spaces to tabs}{9}{3}{46} \chapentry{Opening the software toolbox}{10}{47} \unnumbsecentry{Toolbox introduction}{47} \unnumbsecentry{I/O redirection}{47} \unnumbsecentry{The \code {who} command}{48} \unnumbsecentry{The \code {cut} command}{49} \unnumbsecentry{The \code {sort} command}{49} \unnumbsecentry{The \code {uniq} command}{49} \unnumbsecentry{Putting the tools together}{49} \unnumbchapentry{Index}{55}