sed > Stream editor allow filter and transform texts, find pattern and replace with whatever is that you want to replace with, it's like search and replace.

You can use other separators instead of slashes (/). Example pipe | or hash #

1 - sed substitution -- s for substitution. replaces only the first occurrence in each line of the file and save to a new file

sed 's/word/newword/' < oldfile > newfile


2 - replaces every occurrence of 'word'. g for global

sed 's/word/newword/g' < oldfile > newfile


3 - grab input from command and change it. It's searching for strings and not words

echo "Renata" | sed 's/Renata/Renny/'

echo "Renata Brownish" | sed 's/Brown/Red'


4 - Using -i flag changes will be made in the original file

sed -i 's/word/newword/g' filename


5 - find all the lines with a specific 'Pattern' and substitute a word in that line with new word.

Find the pattern first, then substitute the word 'that' in the lines where you find my pattern with 'THAT'

sed '/pattern/s/that/THAT/'  myfile.txt  ---- only first occurrence in the line

sed '/pattern/s/that/the/g'  myfile.txt    ----every occurrence in the line


6 - Delete the lines that appear the pattern / word 'unique' - it's not a persistent delete though unless you use the flag -i

sed '/unique/d' myfile.txt

Delete an exact match from /etc/hosts file: Use -i flag to make it persistent

sed '/' test-hosts.txt


sed '/' ips.txt