2017-03-09 62 views
0

我有一个文件,并从此文件我试图找到一个词,并用另一个词使用Bash替换它。我正在使用sed来执行此操作,请注意,我正在查找的单词是命令的输出。所以我试图找到一个单词,它是一个命令的输出,并用另一个单词替换它并覆盖前一个单词。找到变量词并用文件替换它在文件中

这是我的代码:

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

它不产生任何错误,但我无法找到,以取代它的词。当我手动键入单词而不是使用变量“$ min”时,它工作得很好。所以,当我这样做,它的工作原理:

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

,但是当我这样做,它不会:

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

我想,也许SED不接受变量作为搜索字符串。任何想法如何我可以实现这一目标?

谢谢。

+1

的变量不是单引号内的扩张。 – Biffen

+0

谢谢你。我将它改为双引号,它工作。 –

回答

0

使用的SED表达双引号,这应该工作:

sed -i "s/$min/max/g" $File 
+1

非常感谢您的帮助:) –

相关问题