_ _
___ | |__ __ _ _______ | |_
/ _ \| '_ \ / _` |_ / _ \| __|
| (_) | | | | (_| |/ / (_) | |_
\___/|_| |_|\__,_/___\___/ \__|
sed —
usage and tips
| replace old with new |
: s/old/new/ |
| replace all occurrences |
: s/old/new/g |
| replace the second occurrence |
: s/l/p/2 |
$ echo "hello" | sed "s/l/p/"
heplo
$ echo "hello" | sed "s/l/p/g"
heppo
$ echo "hello" | sed "s/l/p/2"
helpo
The typical separator is /, which can conflict with pathnames. An
option is to use another character as a separtor, eg.: @ :
echo "/some/path" | sed "s/\/some\/path/\/other\/directory/"
echo "/some/path" | sed "s@/some/path@/other/directory@"
The previous examples can be applied to files:
$ cat file.txt
hello
$ sed "s/l/p/" file.txt
heplo
$ cat file.txt
hello
The previous example displays the substitution, to apply the change to the file,
use -i:
$ cat file.txt
hello
$ sed -i "s/l/p/" file.txt
$ cat file.txt
heplo