首页 > 解决方案 > 在 Linux 中将模式文本从一个文件复制到另一个文件

问题描述

我有一个 csv 文件,在每个“=”之后,下面的文本作为变量值。我想获取每个变量的值并将其替换为另一个文件,该文件具有完全相同的变量名称,前缀为“$$”。

这两个文件都在 Linux 盒子中,我正在尝试使用 sed/awk 进行 shell 脚本编写,但很难通过。

文件_1.csv

MIN_FISCAL_PERIOD=DEC_FY_20

MAX_FISCAL_PERIOD=APR_FY_20

MIN_CALENDAR_DATE=12/01/2019

MAX_CALENDAR_DATE=04/01/2020

file_2_to_replace.prm

$$PI_MIN_CALENDAR_DATE=01/01/2018

$$PI_MAX_CALENDAR_DATE=12/01/2019

$$PI_MIN_FISCAL_PERIOD=NULL

$$PI_MAX_FISCAL_PERIOD=NULL

在上面的示例中,应将 file_1.csv 中每个变量的值复制并替换为 file_2_to_replace.prm 中的适当变量。

标签: linuxshell

解决方案


假设我之前问过,行号匹配,这是一个简单的剪切和粘贴。

#!/bin/sh

cat file_2_to_replace.prm | cut -d'=' -f1 > temp
cat file_1.csv | cut -d'=' -f2 > temp2
paste -d'=' temp temp2 | sed s'/^=$//' > file_2_to_replace.prm

推荐阅读