【问题标题】:Find variable word and replace it in file using Bash [duplicate]使用 Bash 查找变量词并在文件中替换它 [重复]
【发布时间】: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 不接受变量作为搜索字符串。知道如何实现这一目标吗?

谢谢。

【问题讨论】:

  • 变量不在单引号内展开。
  • 谢谢。我把它改成双引号,它起作用了。

标签: bash sed


【解决方案1】:

对 sed 表达式使用双引号,这应该可以:

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

【讨论】:

  • 非常感谢您的帮助:)
猜你喜欢
  • 2017-09-28
  • 1970-01-01
  • 1970-01-01
  • 2014-12-07
  • 2021-12-06
  • 2017-11-04
  • 1970-01-01
  • 1970-01-01
  • 2021-03-12
相关资源
最近更新 更多