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
  • 6,249
  • 6
  • 28
  • 36
Dr.Bake
  • 141
  • 4
  • 18

1 Answers1

2

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

sed -i "s/$min/max/g" $File
aicastell
  • 2,182
  • 2
  • 21
  • 33