0

I have a file and from this file I am trying to find a word and replace it with another word using Bash. I am using sed to do this and please note that the word that I am looking for is an output from a command. So I am trying to find a word, which is the output of a command, and replace it with another word and override the previous word.

This is my code:

File=file.txt
File2=file2.txt
min=$(cat $File2 | grep word);  
sed -i 's/$min/max/g' $File

It's not producing any error, but I am unable to find the word in order to replace it. When I manually type the word rather than using the variable "$min" it works just fine. So when I do this, it works:

sed -i 's/min/max/g' $File

but when I do this, it doesn't:

 sed -i 's/$min/max/g' $File

I am thinking maybe sed doesn't accept variables as a search string. Any idea how I can achieve this?

thank you.

Biffen
  • 5,791
  • 5
  • 29
  • 34
Dr.Bake
  • 121
  • 3
  • 17

1 Answers1

2

Use double quotes for the sed expression, this should work:

sed -i "s/$min/max/g" $File
criptobadia
  • 1,984
  • 1
  • 17
  • 30