Linux 中的变量替换以及从源文件中动态获取属性

Linux 中的变量替换以及从源文件中动态获取属性

我有一个源文件,例如 config.properties,其中包含如下字符串

ExchgRate_prop="EDB_NAME=share_exchange SRC_WDS=wds PN=ExchgRate"
Compliance_prop="EDB_NAME=share_compliance SRC_WDS=wca PN=com"
Unitcost_prop=="EDB_NAME=share_unitcost SRC_WDS=wda PN=unit"

我有一个将项目名称作为输入的 shell 脚本。如果我将 ExchgRate 传递给脚本,我需要获取值“EDB_NAME=share_exchange SRC_WDS=wds PN=ExchgRate”如果我传递 Unitcost,那么我需要获取值“EDB_NAME=share_unitcost SRC_WDS=wda PN=unit”

任何帮助

答案1

这符合你的标准:

$ cat extract.dat
ExchgRate_prop="EDB_NAME=share_exchange SRC_WDS=wds PN=ExchgRate"
Compliance_prop="EDB_NAME=share_compliance SRC_WDS=wca PN=com"
Unitcost_prop=="EDB_NAME=share_unitcost SRC_WDS=wda PN=unit"

$ grep ExchgRate extract.dat | cut -d'"' -f2
EDB_NAME=share_exchange SRC_WDS=wds PN=ExchgRate

$ grep Unitcost extract.dat | cut -d'"' -f2
EDB_NAME=share_unitcost SRC_WDS=wda PN=unit

为了方便起见,您可以创建一个脚本(请注意,该路径适用于我的系统,而不是您的系统):

#!/bin/bash

# NAME: extract.sh
# PATH: $HOME/askubuntu/
# DESC: Answer for: https://askubuntu.com/questions/1224345/variable-substitution-in-linux-and-dynamically-fetch-property-from-source-file
# PARM: $1 = input file, $2 = field name
# NOTE: Prints result
# DATE: April 5, 2020


grep "$2" "$1" | cut -d'"' -f2

使用 使脚本可执行chmod a+x extract.sh

将脚本放在路径中或者在当前目录中使用以下命令调用它:

$ extract.sh extract.dat Unitcost
EDB_NAME=share_unitcost SRC_WDS=wda PN=unit

相关内容