Follow me on Twitter for my latest adventures!
I love writing about programming and I am happy to announce my second e-book called "Sed One-Liners Explained". This book is based on my popular "Famous Sed One-Liners Explained" article series that has been read over 500,000 times.
I reviewed all the one-liners in the series, fixed various mistakes, greatly improved the explanations, added a bunch of new one-liners, bringing the total count to 100, and added three new chapters - an introduction to sed, a summary of sed addresses and ranges, and a chapter on debugging sed scripts with sed-sed.
Table of Contents
The e-book is 98 pages long and it explains exactly 100 one-liners. It's divided into the following chapters:
- 1. Introduction to sed.
- 2. Line Spacing.
- 3. Line Numbering.
- 4. Text Conversion and Substitution.
- 5. Selective Printing of Certain Lines.
- 6. Selective Deletion of Certain Lines.
- 7. Special sed Applications.
- Appendix A. Summary of All sed Commands.
- Appendix B. Addresses and Ranges.
- Appendix C. Debugging sed Scripts with sed-sed.
Sed is the superman of UNIX stream editing. It's a small utility that's present on every UNIX system and it transforms one stream of text into another. Let's take a look at several practical examples that sed can carry out easily. All these examples and many more are explained in the e-book.
I have also made the first chapter of the book, Introduction to sed, freely available. Please download the e-book preview to read it. The introductory chapter explains the general principles of sed, introduces the four spaces of sed, addresses and ranges, and various command line flags.
Example 1: Replace "lamb" with "goat" on every line
This one-liner uses the famous
s/.../.../ command. The
s command substitutes the text in the first part of the command with the text in the second part. In this one-liner it replaces "
lamb" with "
A very detailed explanation of how sed reads the lines, how it executes the commands and how the printing happens is presented in the freely available introduction chapter. Please take a look.
Example 2: Replace only the second occurrence of "lamb" with "goat" on every line
Sed is the only tool that I know that takes a numeric argument to the
s command. The numeric argument, in this case
2, specifies which occurrence of the text to replace. In this example only the 2nd occurrence of "
lamb" gets replaced with "
Example 3: Number the lines in a file
sed = file | sed 'N; s/\n/: /'
This one-liner is actually two one-liners. The first one uses the
= command that inserts a line containing the line number before every original line in the
file. Then this output gets piped to the second
sed command that joins two adjacent lines with the
N command. When joining lines with the
N command, a newline character
\n is placed between them. Therefore it uses the
s command to replace this newline
\n with a colon followed by a space "
So for example, if the
file contains lines:
hello world good job sunny day
Then after running the one-liner, the result is going to be:
1: hello world 2: good job 3: sunny day
Example 4: Delete every 2nd line
This one-liner uses the
n command that prints the current line (actually the current pattern space, see the introduction chapter for in-depth explanation), deletes it, and reads the next line. Then sed executes the
d command that deletes the current line without printing. This way the 1st line gets printed, the 2nd line gets deleted, then the 3rd line gets printed again, then the 4th gets deleted, etc.
Example 5: ROT 13 encode every line
sed ' y/abcdefghijklmnopqrstuvwxyz/nopqrstuvwxyzabcdefghijklm/ y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/NOPQRSTUVWXYZABCDEFGHIJKLM/ '
y/set1/set2/ command is used. The
y command substitutes elements in the
set1 with the corresponding elements in the
set2. The first
y command replaces all lowercase letters with their 13-char-shifted counterparts, and the second
y command does the same for the uppercase letters. So for example, character
a gets replaced by
b gets replaced by
Z gets replaced by
Sed is actually very powerful. It's as powerful as a Turing machine, meaning you can write any computer program in it. Check out these programs written in sed. Run them as
sed -f file.sed:
After you read the e-book you'll be able to understand all these complex programs!
See the quality of my work before you buy the e-book. I have made the first chapter, Introduction to sed, freely available. The preview also includes the full table of contents, preface and the first page of chapter two.
Buy it now!
The price of the e-book is $9.95 and it can be purchased via PayPal:
After you have made the payment, my automated e-book processing system will send you the PDF e-book in a few minutes!
Tweet about my book!
Help me spread the word about my new book! I prepared a special link that you can use to tweet about it:
I am not stopping here. I love writing about programming and my next book is going to be "Perl One-Liners Explained", based on my "Famous Perl One-Liners Explained" article series. Expect this book in a few months!
Enjoy the book and don't forget to leave comments about it!
Also if you're interested, take a look at my first e-book called "Awk One-Liners Explained". It's written in the same style as this e-book and it teaches practical Awk through many examples.