linux .sh脚本如何读写ini
时间: 2024-05-10 09:19:24 浏览: 103
在 Linux 中,可以使用 Shell 脚本读取和写入 INI 文件。INI 文件是一个常见的配置文件格式,通常被用于 Windows 平台上的应用程序中。
以下是一个示例 INI 文件:
```ini
[database]
host=localhost
port=3306
username=root
password=123456
dbname=mydb
[server]
ip=192.168.1.100
port=8080
```
现在,我们将演示如何使用 Shell 脚本读取和写入 INI 文件。假设我们想要读取 `[database]` 部分中的 `host` 值。
```bash
#!/bin/bash
# 定义要读取的 INI 文件路径
INI_FILE="./config.ini"
# 定义要读取的 section 和 key
SECTION="database"
KEY="host"
# 读取 INI 文件中指定 section 和 key 的值
value=$(awk -F '=' "/^\[$SECTION\]/, /^\[/{if(\$1==\"$KEY\") print \$2}" $INI_FILE)
echo $value
```
上述代码使用 awk 命令读取 INI 文件中指定 section 和 key 的值。我们首先定义要读取的 INI 文件路径、section 和 key,然后使用 awk 命令查找匹配的 section 和 key,并输出相应的 value。
如果我们要修改 INI 文件中指定 section 和 key 的值,可以使用以下代码:
```bash
#!/bin/bash
# 定义要修改的 INI 文件路径
INI_FILE="./config.ini"
# 定义要修改的 section 和 key
SECTION="database"
KEY="host"
# 定义要修改的 value
VALUE="newhost"
# 修改 INI 文件中指定 section 和 key 的值
sed -i "/^\[$SECTION\]/, /^\[/{s/\($KEY *= *\).*/\1$VALUE/}" $INI_FILE
```
上述代码使用 sed 命令修改 INI 文件中指定 section 和 key 的值。我们首先定义要修改的 INI 文件路径、section 和 key,然后使用 sed 命令查找匹配的 section 和 key,并将其值替换为指定的新值。注意,这里使用了 `-i` 选项将修改写入原始文件。如果不需要修改原始文件,可以将 `-i` 选项去掉,然后将修改后的内容输出到新文件中。