gpt4 book ai didi

bash - 使用 awk 解析配置文件

转载 作者:行者123 更新时间:2023-11-29 09:50:59 25 4
gpt4 key购买 nike

我正在尝试创建一个 awk 命令,它将整个配置文件存储为变量。

配置文件采用以下形式(键从不包含空格,但值可以):

key=value
key2=value two

我的 awk 命令是:

$(awk -F= '{printf "declare %s=\"%s\"\n", $1, $2}' $file)

在没有外部子 shell $(...) 的情况下运行它会得到我想要打印的确切命令,所以我的问题不是关于 awk,更多的是关于如何运行输出awk 作为命令。

命令的计算结果为:

declare 'key="value"'

这有点问题,因为双引号与值一起存储。更糟糕的是,当引入空格时,会导致:

declare 'key2="value' two"

当然,我不能删除引号或多字值会导致问题。

我已经尝试了几乎所有我能找到的解决方案,例如 set -fevalsystem()

最佳答案

您不需要为此使用 Awk,但可以使用可用的内置插件来执行此操作。使用输入重定向正确读取配置文件

#!/bin/bash

while IFS== read -r k v; do
declare "$k"="$v"
done < config_file

并将文件来源为

$ source script.sh
$ echo "$key"
value
$ echo "$key2"
value two

如果 source 不是显式可用的,POSIX 的方法就是只做

. ./script.sh

关于bash - 使用 awk 解析配置文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44453845/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com