我有一个文件,我试图找到一个单词并用另一个单词用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不接受变量作为搜索字符串。知道如何实现这个目标吗?
谢谢你。答案 0 :(得分:1)
对sed表达式使用双引号,这应该有效:
sed -i "s/$min/max/g" $File