SED and AWK in Linux
The Linux’s ecosystem has two other very useful and powerful tools for patterns search: sed that stands for stream editor, and awk that is named by the names of its creators, Aho, Weinberger, and Kerningham. In this article we are going to explain, what is the major difference? Which is the best usage for each one of the two? So, let’s dive deep in.
A fast stream editor, is able to search for a pattern and apply the given changes and/or commands; still easy to combine in sophisticated filters, but serving in different aim; modifying the text in the stream. Its key usage consists of editing in-memory a stream according to the given pattern.
A slackly typed programming language for stream processing, where the basic unit is the String (intended as an array of characters) that can be 1. Matched 2. Substituted and 3. Worked around most of the times, it is not needed to combine awk with other filters, since its reporting capabilities are very powerful (the printf built-in function allows format the output text as in C). Its main usage consists fine-grained (variables can be defined and modified incrementally) and programmatic manipulations (flow control statements) to the input stream.
According to the above definitions, the two tools serve different purposes but it might be used in combinations, and as said work in matching patterns, but, there is still no net difference between sed and awk so let’s try to clarify by examples.