in Ask

How To Use Sed To Replace a Specific String in a File

Let’s take the linux shadow file as an example. Using sed you can replace the root user password with an empty character.

Suppose your /etc/shadow file look like this:

[root@localhost ~]# cat /etc/shadow

You can use the following sed command to replace the root password string between the two semicolon with an empty string.

sed -e 's/root:[[:alnum:]]*[^:]*/root:/g' /etc/shadow

The string [[:alnum:]] in the sed command is a regex that mean : search for any alpha-numeric characters.

Use the -e to test the command before editing your file, to make change permanent use -i in you sed command.

Share your thoughts