In this tutorial I will show a few useful examples of using “sed”.
-i: inline replace
-e: command to run
Add Line At End
Notice ($) and (a after $). Match last line (‘$’) and append (‘a’)
sudo sed -i -e "\$amy new line" /file/path/name.extension
Match Replace
This will replace the text on the left with the text on the right. Notice the “/” at the beginning and “/c\” in the middle.
sudo sed -i '/myCustomText=/c\myCustomText=newtext' /file/path/name.extension
Remove Matched Line
This will remove the line that matches the text. Notice the “/d” at the end and the “/” at the beginning.
sudo sed -i '/RemoveMyCustomText/d' /file/path/name.extension
Remove All Occurrences
This will remove all occurrences of “NIFI.APACHE.ORG” and replace with “REALM.CA”. Notice “/g” at end for global replace. Notice “s/” at the beginning. If means substitute. The “/” in the middle is used to denote the separation of the text to find and the text to replace.
sudo sed -i 's/NIFI.APACHE.ORG/REALM.CA/g' /file/path/name.extension
Handle ” Quotes / Handle XML / Add Tab
So the below example will go a few things. It will show you how to escape double quotes. It shows you how to add a tab and shows you how to handle xml. It also will add a line under text.
sudo sed -i -e "/<property name=\"Default Realm\">REALM.CA<\/property>/a \ \t<property name=\"Kerberos Config File\">/etc/krb5.conf<\/property>" /file/path/name.extension
Delete Lines By Number
sudo sed -i -e "$lineNumber,$maxLineNumber d" /file/path/name.extension