CLI text processing with GNU sed
Example based guide to mastering GNU sed. Visit https://youtu.be/nvKyKoeiZD8 for a short video about the book.
The book also includes exercises to test your understanding, which are presented together as a single file in this repo â Exercises.md
For solutions to the exercises, see Exercise_solutions.md.
You can also use this interactive TUI app to practice some of the exercises from the book.
See Version_changes.md to keep track of changes made to the book.
E-book
- You can purchase the pdf/epub versions of the book using these links:
- You can also get the book as part of these bundles:
- All books bundle bundle from https://learnbyexample.gumroad.com/l/all-books
- Includes all my programming books
- Magical one-liners bundle from https://learnbyexample.gumroad.com/l/oneliners or https://leanpub.com/b/oneliners
- Awesome Regex bundle from https://learnbyexample.gumroad.com/l/regex or https://leanpub.com/b/regex
- All books bundle bundle from https://learnbyexample.gumroad.com/l/all-books
- See https://learnbyexample.github.io/books/ for a list of other books
For a preview of the book, see sample chapters.
The book can also be viewed as a single markdown file in this repo. See my blogpost on generating pdfs from markdown using pandoc if you are interested in the ebook creation process.
For the web version of the book, visit https://learnbyexample.github.io/learn_gnused/
Testimonials
Thank you for choosing to write and share your knowledge. I read your books on CLI and sed - I think they are very comprehensive and very well explained. Keep up the great work
Feedback and Contributing
I would highly appreciate 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/learn_gnused/issues
- E-mail:
echo 'bGVhcm5ieWV4YW1wbGUubmV0QGdtYWlsLmNvbQo=' | base64 --decode
- Twitter: https://twitter.com/learn_byexample
Table of Contents
- Preface
- Introduction
- In-place file editing
- Selective editing
- BRE/ERE Regular Expressions
- Flags
- Shell substitutions
- z, s and f command line options
- append, change, insert
- Adding content from file
- Control structures
- Processing lines bounded by distinct markers
- Gotchas and Tricks
- Further Reading
Acknowledgements
- GNU sed documentation â manual and examples
- stackoverflow and unix.stackexchange â for getting answers to pertinent questions on
sed
and related commands - tex.stackexchange â for help on pandoc and
tex
related questions - /r/commandline/, /r/linux4noobs/, /r/linuxquestions/ and /r/linux/ â helpful forums
- canva â cover image
- oxipng, pngquant and svgcleaner â optimizing images
- Warning and Info icons by Amada44 under public domain
- arifmahmudrana for spotting an ambiguous explanation
- mdBook â for web version of the book
- mdBook-pagetoc â for adding table of contents for each chapter
- minify-html â for minifying html files
Special thanks to all my friends and online acquaintances for their help, support and encouragement, especially during difficult times.
License
The book is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.
The code snippets are licensed under MIT, see LICENSE file.