【发布时间】:2017-07-30 10:41:40
【问题描述】:
我有一个文件,我试图从这个文件中找到一个单词并使用 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 不接受变量作为搜索字符串。知道如何实现这一目标吗?
谢谢。
【问题讨论】:
-
变量不在单引号内展开。
-
谢谢。我把它改成双引号,它起作用了。