Introduction
I've been using Linux since 2007, but it took me ten more years to really explore coreutils when I wrote tutorials for the Command Line Text Processing repository.
Any beginner learning Linux command line tools would come across the cat
command within the first week. Sooner or later, they'll come to know popular text processing tools like grep
, head
, tail
, tr
, sort
, etc. If you were like me, you'd come across sed
and awk
, shudder at their complexity and prefer to use a scripting language like Perl and text editors like Vim instead (don't worry, I've already corrected that mistake).
Knowing power tools like grep
, sed
and awk
can help solve most of your text processing needs. So, why would you want to learn text processing tools from the coreutils package? The biggest motivation would be faster execution since these tools are optimized for the use cases they solve. And there's always the advantage of not having to write code (and test that solution) if there's an existing tool to solve the problem.
This book will teach you more than twenty of such specialized text processing tools provided by the GNU coreutils
package. Plenty of examples and exercise are provided to make it easier to understand a particular tool and its various features.
Writing a book always has a few pleasant surprises for me. For this one, it was discovering a sort
option for calendar months, regular expressions in the tac
and nl
commands, etc.
Installation
On a GNU/Linux based OS, you are most likely to already have GNU coreutils installed. This book covers the version 9.1 of the coreutils package. To install a newer/particular version, see the coreutils download section for details.
If you are not using a Linux distribution, you may be able to access coreutils using these options:
- Windows Subsystem for Linux — compatibility layer for running Linux binary executables natively on Windows
- brew — Package Manager for macOS (or Linux)
Documentation
It is always a good idea to know where to find the documentation. From the command line, you can use the man
and info
commands for brief manuals and full documentation respectively. I prefer using the online GNU coreutils manual which feels much easier to use and navigate.
See also:
- Release notes — overview of changes and bug fixes between versions
- Bug list
- Common options
- FAQ
- Gotchas