Preface
You might be already aware of popular coreutils commands like head
, tail
, tr
, sort
and so on. This book will teach you more than twenty of such specialized text processing tools provided by the GNU coreutils
package.
My Command Line Text Processing repo includes chapters on some of these coreutils commands. Those chapters have been significantly edited for this book and new chapters have been added to cover more commands.
Prerequisites
You should be familiar with command line usage in a Unix-like environment. You should be comfortable with concepts like file redirection and command pipelines.
If you are new to the world of command line, check out my Computing from the Command Line ebook and curated resources on Linux CLI and Shell scripting before starting this book.
Conventions
- The examples presented here have been tested on the
GNU bash
shell and version 9.1 of theGNU coreutils
package. - Code snippets shown are copy pasted from the
bash
shell and modified for presentation purposes. Some commands are preceded by comments to provide context and explanations. Blank lines have been added to improve readability, onlyreal
time is shown for speed comparisons and so on. - Unless otherwise noted, all examples and explanations are meant for ASCII characters.
- External links are provided throughout the book for you to explore certain topics in more depth.
- The cli_text_processing_coreutils repo has all the code snippets and files used in examples, exercises and other details related to the book. If you are not familiar with the
git
command, click the Code button on the webpage to get the files.
Acknowledgements
- GNU coreutils documentation — manual and examples
- /r/commandline/, /r/linux4noobs/ and /r/linux/ — helpful forums
- stackoverflow and unix.stackexchange — for getting answers to pertinent questions on coreutils and related commands
- tex.stackexchange — for help on pandoc and
tex
related questions - canva — cover image
- Warning and Info icons by Amada44 under public domain
- oxipng, pngquant and svgcleaner — optimizing images
- SpikePy — for spotting an ambiguous explanation
- mdBook — for web version of the book that you are currently reading
- mdBook-pagetoc — for adding table of contents for each page
- minify-html — for minifying html files
Feedback and Errata
I would highly appreciate it if you'd let me know how you felt about this book. It could be anything from a simple thank you, pointing out a typo, mistakes in code snippets, which aspects of the book worked for you (or didn't!) and so on. Reader feedback is essential and especially so for self-published authors.
You can reach me via:
- Issue Manager: https://github.com/learnbyexample/cli_text_processing_coreutils/issues
- E-mail: learnbyexample.net@gmail.com
- Twitter: https://twitter.com/learn_byexample
Author info
Sundeep Agarwal is a lazy being who prefers to work just enough to support his modest lifestyle. He accumulated vast wealth working as a Design Engineer at Analog Devices and retired from the corporate world at the ripe age of twenty-eight. Unfortunately, he squandered his savings within a few years and had to scramble trying to earn a living. Against all odds, selling programming ebooks saved his lazy self from having to look for a job again. He can now afford all the fantasy ebooks he wants to read and spends unhealthy amount of time browsing the internet.
When the creative muse strikes, he can be found working on yet another programming ebook (which invariably ends up having at least one example with regular expressions). Researching materials for his ebooks and everyday social media usage drowned his bookmarks, so he maintains curated resource lists for sanity sake. He is thankful for free learning resources and open source tools. His own contributions can be found at https://github.com/learnbyexample.
List of books: https://learnbyexample.github.io/books/
License
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.
Code snippets are available under MIT License.
Resources mentioned in Acknowledgements section above are available under original licenses.
Book version
2.0
See Version_changes.md to track changes across book versions.