Using SED Linux is a considerably faster process of finding and replacing things in the file instead of first opening a file on VI Editor and then proceeding to make alterations. All editing operations decisions occur when calling on the command. That is a powerful approach to text transformation. In summary, sed is a potent text stream editor that supports regular expression allowing it to carry out complicated pattern matching.
How to edit text streams using SED Linux
Because the sed command works on text files or input streams, you can send the output of various other commands directly to it. This command outputs everything on STDOUT (standard output) by default. If you wish to save the result within a file, you can do so by redirecting the output from the sed command.
The syntax for the SED command in Linux:
sed [options] commands [input file]
SED Examples that you can use (SED tutorial)
The SED command in UNIX has a wide variety of functions and uses. As previously mentioned, some of these functions are printing, deleting, replacing, and saving text in a file. Because of the various roles, different commands need to be executed to perform these functions. Below are samples of some common sed commands.
1. Printing a file
The sed command transfers its output to the standard one by default. Therefore, you can view the file's contents without passing any editing commands by it. In this command, you are supposed to leave the commands field blank, as illustrated below:
Another way to print the contents of a particular file is by offering the standard input instead of the file:
cat example.txt | sed"
2. Substituting or replacing SED string of text
The sed command is commonly used to replace or substitute text within a file. It can utilize regular expressions in searching for text patterns and follow this up with replacing found text with the preferred value. You can specify the line numbers range to the command for this procedure.
Below is a simple sed replace command that is used to replace "Unix" with "Linux" within a particular field:
$sed 's/unix/linux/' file.txt
In the above command, the "s" specifies that particular substitution operation. The "/" is the delimiters and "unix" is the pattern, while "linux" represents the replacement string. $ defines the file's last line.
Sed substitutes the occurrence of each line's first pattern, and it will not do this for the subsequent second, third, or fourth occurrence in this line.
3. Substituting a string on a particular line number
Users can restrict sed so as to substitute the string on a particular line number. Below is an example of this type of command.
$sed '3 s/unix/linux/' file.t
The above example only replaces the line string on the third line.
4. Deleting lines for a specific file
A sed command is used to delete specific lines from a field. This command performs the deletion operation even without opening the file. For instance, if you want to delete a particular line from a Syntax, you should follow this command:
$ sed 'cd' filename.txt
5. Substituting all occurrences of the pattern within a line
"/g" is the substitute flag tasked with specifying the sed command for replacing all occurrences of strings on a line. It stands for global replacement. Here is a sample command used to perform this function:
$sed 's/unix/linux/2' file.txt
6. Parenthesizing each word's first character
The following example enables users to print each word's first character in parenthesis:
7. Substituting nth occurrence to all occurrences within a line
You are supposed to use the combinations "/1, /2..." and "/g" to replace all patterns from the nth occurrence within a line. The sed command below demonstrates how to replace the third, fourth, fifth, sixth..." "Unix" word with "Linux" within a line:
$sed 's/unix/linux/3g' file.txt
This particular command will only replace the string on the third line.
8. Printing the replaced lines only
If you want to display only replaced lines, you should use the "-n" option and the "/p" print flag. In this sample, the "-n" option is used to suppress the duplicate rows generated by the "/p" flag. It prints the substituted lines only once:
$sed -n 's/unix/linux/p' file.txt
If you choose to use "-n" without "/p," the sed command will not print anything.
9. Duplicating a replaced line using the /p flag
The "/p" flag prints a replaced line just twice on the terminal. If the line doesn't have a search pattern and isn't replaced, then the "/p" flag only prints it once.
$sed 's/unix/linux/p' file.txt
Sed command vs grep command
The grep command tends to come up alongside the SED UNIX command when discussing basic text search or manipulation. They are similar in some ways, although they are indeed different commands.
The grep command is a line-based search function mainly used to return lines from a single file or multiple files. These lines are matched with specific search terms. Sed is similar to the former because it is also a line-by-line tool. However, it is primarily intended for string replacement in lines (sed replace string), unlike its counterpart.
Furthermore, grep focuses on each line of text within a file and looks for a match against a provided term. The first basic syntax in this command is a matcher followed by the search space. The sed command substitutes the occurrence of a particular set of characters with a different one within a specific field.
Many power users enjoy using the sed replace command for its replacement abilities. Therefore, they can carry out text manipulation functions more efficiently and faster. The samples provided above in the SED tutorial provide a blueprint on where to start if you are a beginner that is not very familiar with the sed command.
People also read: