分享一种修改配置文件的方法
大家好,我是杂烩君。
本次分享一种修改配置文件的方法,文章很短,但挺实用~
平时,我们使用的配置文件可以是json、ini等这些标准格式,也可以是一些非标准格式。这些标准格式都有一些对应的库进行解析修改,比较方便。但是,有时候我们需要修改一些非标准格式的一些文件里的一些内容,可能就得自己想办法了。
这里提供一种方法:使用sed工具进行修改。
sed 工具是一个强大而简单的文本解析转换工具,可以读取文本,并根据指定的条件对文本内容进行编辑(删除、替换、添加、移动等),最后输出所有行或者仅输出处理的某些行。
例如,之前我们分享的文章:远程登陆开发板:RTL8723驱动移植+wpa_supplicant移植+SSH移植中有用到如下用于配置板子所连接WiFi的配置文件wpa_supplicant.conf:
-
r/run/wpa_supplicant
-
update_config=1
-
ap_scan=1
-
-
network={
-
ssid="test"
-
psk="12345678"
-
scan_ssid=1
-
key_mgmt=WPA-PSK
-
priority=1
-
}
假如我们想要修改ssid的值为 LinuxZn
及psk的值为 88888888
,可以怎么修改?
命令行操作:
左右滑动查看全部代码>>>
-
sed -i 's/ssid="[^"]*"/ssid="LinuxZn"/g' ./wpa_supplicant.conf
-
sed -i 's/psk="[^"]*"/ssid="88888888"/g' ./wpa_supplicant.conf
也可以在C代码中调用以上命令,如:
代码:
左右滑动查看全部代码>>>
-
#include <stdio.h>
-
#include <unistd.h>
-
#include <stdlib.h>
-
#include <string.h>
-
-
#define SHELL_CMD_MODIFY_WIFI_SSID "sed -i \'s/ssid=\"[^\"]*\"/ssid=\"%s\"/g\' ./wpa_supplicant.conf"
-
#define SHELL_CMD_MODIFY_WIFI_PSW "sed -i \'s/psk=\"[^\"]*\"/psk=\"%s\"/g\' ./wpa_supplicant.conf"
-
#define SHELL_CMD_RESET_WIFI_CONF_FILE "cp default_wpa_supplicant.conf wpa_supplicant.conf"
-
-
-
int main(int arc, char *argv[])
-
{
-
char shell_cmd[256] = {0};
-
-
// 重置WiFi配置文件
-
system(SHELL_CMD_RESET_WIFI_CONF_FILE);
-
-
// 修改WiFi名称
-
snprintf(shell_cmd, sizeof(shell_cmd), SHELL_CMD_MODIFY_WIFI_SSID, "LinuxZn");
-
system(shell_cmd);
-
-
// 清除shell_cmd
-
bzero(shell_cmd, sizeof(shell_cmd));
-
-
// 修改WiFi密码
-
snprintf(shell_cmd, sizeof(shell_cmd), SHELL_CMD_MODIFY_WIFI_PSW, "88888888");
-
system(shell_cmd);
-
-
return 0;
-
}
运行结果:
在修改配置文件之前,需要重置一下,保证配置文件的格式正确。
往期推荐:
手把手教你使用VSCode + gdb + gdbserver调试ARM程序
在公众号聊天界面回复1024,可获取嵌入式资源;回复 m ,可查看文章汇总。
文章来源: blog.csdn.net,作者:嵌入式大杂烩,版权归原作者所有,如需转载,请联系作者。
原文链接:blog.csdn.net/zhengnianli/article/details/126113460
- 点赞
- 收藏
- 关注作者
评论(0)