如何使用--file = script-file选项输入文件以在sed命令中进行搜索和替换

时间:2019-02-14 04:55:55

标签: linux

我正在使用jenkins-cli进行jenkins迁移,其中一步是使用sed命令手动替换值,如下所示:

definitions = [
    { 
      "id": 5, 
      "text": "Argentina" 
    },
    {
      "id": 1,
      "text": "Poland"
    },
    {
      "id": 2,
      "text": "UK"
    },
    {
      "id": 3,
      "text": "Germany"
    },
    {
      "id": 4,
      "text": "France"
    }
  ]

但是我想在输入文件中输入所有可能的值,其中两列的分隔符为sed 's/mukesh/architect/g' target_file ,并提供给目标文件

输入文件看起来像
例如:

  

mukesh =建筑师
  abdul = manager

现在,我想将此文件用作sed命令中的输入以进行搜索并替换到我的目标文件中。我不想使用手动=,而是要使用在手册页中找到的以下选项

s///g

但不确定如何使用此输入文件自动搜索并将模式替换为目标文件。如果有任何样品,示例,将不胜感激。

1 个答案:

答案 0 :(得分:0)

您可以使用以下代码读取输入文件,对其进行解析并更新输出文件。 在这里,我正在读取输入文件,根据分隔符“ =”分隔值,然后更新outfile /目标文件。

while read name
do 
x=`echo $name|cut -d"=" -f1`
y=`echo $name|cut -d"=" -f2`
sed -i "s/$x/$y/g" outfile
done < inputfile

这应该可以解决您的问题。让我知道您是否正在寻找其他东西或其他东西。欢呼:)