I'm writing a shell script with this command:

sed -e 's/OLD_ITEM/NEW_ITEM/g' 

But I actually want to do something that includes a directory:

sed -e 's/FOLDER/OLD_ITEM/NEW_ITEM/g'

How do ignore the forward slash so that the entire line FOLDER/OLD_ITEM is read properly?

3 Answers

5
codaddict On Best Solutions

You need to escape the / as \/.

The escape (\) preceding a character tells the shell to interpret that character literally.

So use FOLDER\/OLD_ITEM

0
Loïc Février On

Escape it !

sed -e 's/FOLDER\/OLD_ITEM/NEW_ITEM/g'
20
JesperE On

You don't have to use / as delimiter in sed regexps. You can use whatever character you like, as long as it doesn't appear in the regexp itself:

sed -e '[email protected]/[email protected][email protected]'

or

sed -e 's|FOLDER/OLD_ITEM|NEW_ITEM|g'