Table of Contents
sed
Tool for doing stuff with lines, or perhaps stream of characters..
Using as regex to get stuff
By default, everything that is not deleted (by a delete command) is printed to stdout. To inhibit this, pass '-n' flag.
Forward dash / is usually a separator character. It is used to separate different commands and their arguments.
Truth to be told, almost any character can be used as a separator. The first character after the command seems to be used as a separator. Thus 's/some text/other text/p' could be written as 'sKsome textKother textKp' .
sed takes a string as argument, which can contain commands, that in turn contain matching strings.
The string that is passed to sed must contain a valid command. A valid command is fucked up. It can be either the first character, or the trailing character.
For example the command to print a line that matches something would be
echo testfil.txt | sed -n '/something/p'
While the command to substitute comes before a string. To substitute "dude" with "shit":
echo testfil.txt | sed 's/dude/shit/'
But you could also combine them, and print only the lines that matches the substitutions. Thus having commands both first and last in the string:
echo testfil.txt | sed -n 's/dude/shit is fucked up/p'
Examples
sed '/actual pattern/command' # ex sed '/Matches this string/p' # command p is printed. But since -d flag is not provided, so will everything else too sed -n '/Matches this string/p' # Only prints rows containing "Matches this string"
