{"id":13961475,"url":"https://github.com/larrykollar/Unix-Text-Processing","last_synced_at":"2025-07-21T06:30:57.639Z","repository":{"id":217231977,"uuid":"305168459","full_name":"larrykollar/Unix-Text-Processing","owner":"larrykollar","description":"Recreated sources for the book \"UNIX Text Processing,\" published in 1987.","archived":false,"fork":false,"pushed_at":"2023-08-23T14:47:57.000Z","size":635,"stargazers_count":214,"open_issues_count":5,"forks_count":11,"subscribers_count":10,"default_branch":"main","last_synced_at":"2024-11-28T07:34:31.407Z","etag":null,"topics":["formatting","gnu-troff","groff","publishing","text-processing","unix","utp","utp-revival"],"latest_commit_sha":null,"homepage":"","language":"Roff","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/larrykollar.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-10-18T18:23:45.000Z","updated_at":"2024-11-12T13:45:15.000Z","dependencies_parsed_at":null,"dependency_job_id":"67e5aab7-7edd-40de-9a3c-3e7ebae58ed1","html_url":"https://github.com/larrykollar/Unix-Text-Processing","commit_stats":null,"previous_names":["larrykollar/unix-text-processing"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/larrykollar/Unix-Text-Processing","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/larrykollar%2FUnix-Text-Processing","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/larrykollar%2FUnix-Text-Processing/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/larrykollar%2FUnix-Text-Processing/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/larrykollar%2FUnix-Text-Processing/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/larrykollar","download_url":"https://codeload.github.com/larrykollar/Unix-Text-Processing/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/larrykollar%2FUnix-Text-Processing/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266253498,"owners_count":23900051,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["formatting","gnu-troff","groff","publishing","text-processing","unix","utp","utp-revival"],"created_at":"2024-08-08T17:01:10.825Z","updated_at":"2025-07-21T06:30:57.628Z","avatar_url":"https://github.com/larrykollar.png","language":"Roff","readme":"# Unix Text Processing\n\n*UTP is one of the best books on Unix from a user's perspective.*  \n– Jack Redman\n\n\u003cimg alt=\"Original book cover\" src=\"unixtextprocess_s.gif\" align=\"right\"/\u003eOriginally published in 1987,\nUnix Text Processing (UTP) (written by Dale Dougherty and Tim O'Reilly)\nprovides one of the few comprehensive looks at all the tools\ninvolved in a typical *troff*-based writing workflow.\nIt covers:\n\n-   UNIX and *troff* basics\n-   text editors (*vi*, *ex*, and *sed*)\n-   the *ms* and *mm* macro packages\n-   scripting with *sh*, *awk*, and *sed*\n-   the *tbl*, *eqn* and *pic* preprocessors\n-   macro writing\n\nThe appendices provide a collection of reference material and other\nuseful pointers.\n\nUTP was originally published by Hayden Books (which was acquired by\nHoward W. Sams before the book was actually published).\nIn the early 21^st^ century, the authors made the book available at\nthe [Open Books Project](http://www.oreilly.com/openbook/)\nunder the Creative Commons\n[Attribution License](http://creativecommons.org/licenses/by/1.0).\nScanned pages are [available](ftp://ftp.oreilly.com/pub/utp/) in\nPBM (Portable BitMap) and PDF formats.\nThe original [troff](http://troff.org/) markup is lost.\n\nIn 2002,\nsome members of the [GNU Troff](https://www.gnu.org/software/groff/)\n(*groff*) mailing list\nbegan transcribing the book and recreating the source code.\nIt took a little over a year of manic activity,\npunctuated by long naps,\nand we released \"UTP Revival\" in 2004.\nWe still hope to modernize the book (\"UTP Revisited\").\nWhether you want to use GNU Troff,\nor Plan 9 or one of its derivatives (Heirloom Troff and Neatroff),\nUTP is still an excellent guide to the nuts and bolts of print publishing.\n\nThe current (main) branch is UTP 1.1,\nwhich provides a clickable index, TOC, and cross-references within the PDF\n(thanks to Deri James).\nYou will need *groff* 1.22 or newer to format it,\nas it uses the -Tpdf driver.\nIf you have an older *groff*, switch to the 1.0 branch.\n\nThe UTP Revival Release is\ndistributed according to the terms of the\nCreative Commons Attribution License.\nA copy of the license is available at\n[http://creativecommons.org/licenses/by/1.0](http://creativecommons.org/licenses/by/1.0).\n\n**Note**: The transcription project predated Plan 9 and its derivatives.\nThus, the recreated source and macros were written for *groff*,\nand we made no attempt to be compatible with the original *troff*.\nPatches for Heirloom or Neatroff (if needed) are welcome!\n\n------------------------------------------------------------------------\n\n## Acknowledgements\n\n-   First, a big thanks to the original authors\n    for making the book available in the first place.\n    Nothing else could have happened without that first step.\n-   Jon Snader provided the scripts to build the table of contents.\n-   Michael Hobgood and Andreas Kähäri handled proofreading chores.\n-   Deri James added PDF links for the contents and index.\n\nIndividuals who worked on various chapters:\n\n| Chapter Title                       | Transcriber         | Markup              | Indexing            |\n|-------------------------------------|---------------------|---------------------|---------------------|\n| Front matter                        | Ralph Corderoy      | Ralph Corderoy      | n/a                 |\n| Preface                             | Stewart Russell     | Larry Kollar        | n/a                 |\n| From Typewriters to Word Processors | Stewart Russell     | Michael Hobgood     | Michael Hobgood     |\n| UNIX Fundamentals                   | Stewart Russell     | Michael Hobgood     | Heinz-Jürgen Oertel |\n| Learning vi                         | Heinz-Jürgen Oertel | Heinz-Jürgen Oertel | Jack Redman         |\n| nroff and troff                     | Colin Watson        | Michael Hobgood     | Heinz-Jürgen Oertel |\n| The ms macros                       | Larry Kollar        | Larry Kollar        | Larry Kollar        |\n| The mm macros                       | Larry Kollar        | Larry Kollar        | Larry Kollar        |\n| Advanced Editing                    | Heinz-Jürgen Oertel | Heinz-Jürgen Oertel | Jack Redman         |\n| Formatting with tbl                 | Michael Hobgood     | Michael Hobgood     | Michael Hobgood     |\n| Typesetting Equations with eqn      | Michael Hobgood     | Michael Hobgood     | Jack Redman         |\n| Drawing Pictures                    | Michael Hobgood     | Michael Hobgood     | Jack Redman         |\n| A Miscellany of UNIX Commands       | Manas Laha          | Manas Laha          | Manas Laha          |\n| Let the Computer do the Dirty Work  | Larry Kollar        | Larry Kollar        | Larry Kollar        |\n| The awk Programming Language        | Larry Kollar        | Larry Kollar        | Jack Redman         |\n| Writing nroff and troff Macros      | Michael Hobgood     | Michael Hobgood     |                     |\n| Figures and Special Effects         | Michael Hobgood     | Michael Hobgood     | Larry Kollar        |\n| What's in a Macro Package?          | Michael Hobgood     | Michael Hobgood     |                     |\n| An Extended ms Macro Package        | Michael Hobgood     | Michael Hobgood     |                     |\n| Putting it All Together             | Michael Hobgood     | Michael Hobgood     | Michael Hobgood     |\n| Editor Command Summary              | Heinz-Jürgen Oertel | Heinz-Jürgen Oertel | Heinz-Jürgen Oertel |\n| Formatter Command Summary           | Manas Laha          | Manas Laha          | Manas Laha          |\n| Shell Command Summary               | Ralph Corderoy      | Ralph Corderoy      |                     |\n| Format of troff Width Tables        | Ralph Corderoy      | Ralph Corderoy      |                     |\n| Comparing mm and ms                 | Ralph Corderoy      | Ralph Corderoy      |                     |\n| The format Macros                   | Ralph Corderoy      | Ralph Corderoy      |                     |\n| Selected Readings                   | Ralph Corderoy      | Ralph Corderoy      |                     |\n\n","funding_links":[],"categories":["Roff"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flarrykollar%2FUnix-Text-Processing","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flarrykollar%2FUnix-Text-Processing","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flarrykollar%2FUnix-Text-Processing/lists"}