分享一种修改配置文件的方法

举报
嵌入式大杂烩 发表于 2022/08/02 22:32:45 2022/08/02
【摘要】 大家好,我是杂烩君。 本次分享一种修改配置文件的方法,文章很短,但挺实用~ 平时,我们使用的配置文件可以是json、ini等这些标准格式,也可以是一些非标准格式。这些标准格式都有一些对应的库进行解析修改,比较方便。但是,有时候我们需要修改一些非标准格式的一些文件里的一些内容,可能就得自己想办法了。 这里提供一种方法:使用se...

大家好,我是杂烩君。

本次分享一种修改配置文件的方法,文章很短,但挺实用~

平时,我们使用的配置文件可以是json、ini等这些标准格式,也可以是一些非标准格式。这些标准格式都有一些对应的库进行解析修改,比较方便。但是,有时候我们需要修改一些非标准格式的一些文件里的一些内容,可能就得自己想办法了。

这里提供一种方法:使用sed工具进行修改。

sed 工具是一个强大而简单的文本解析转换工具,可以读取文本,并根据指定的条件对文本内容进行编辑(删除、替换、添加、移动等),最后输出所有行或者仅输出处理的某些行。

例如,之前我们分享的文章:远程登陆开发板:RTL8723驱动移植+wpa_supplicant移植+SSH移植中有用到如下用于配置板子所连接WiFi的配置文件wpa_supplicant.conf:


   
  1. r/run/wpa_supplicant
  2. update_config=1
  3. ap_scan=1
  4. network={
  5.         ssid="test"
  6.         psk="12345678"
  7.         scan_ssid=1
  8.         key_mgmt=WPA-PSK
  9.         priority=1
  10. }

假如我们想要修改ssid的值为 LinuxZn 及psk的值为 88888888 ,可以怎么修改?

命令行操作:

左右滑动查看全部代码>>>


   
  1. sed -i 's/ssid="[^"]*"/ssid="LinuxZn"/g' ./wpa_supplicant.conf
  2. sed -i 's/psk="[^"]*"/ssid="88888888"/g' ./wpa_supplicant.conf
dd1706a8b92ab27f9d04a12163c05ec5.png

也可以在C代码中调用以上命令,如:

代码:

左右滑动查看全部代码>>>


   
  1. #include <stdio.h>   
  2. #include <unistd.h>
  3. #include <stdlib.h>
  4. #include <string.h>
  5. #define SHELL_CMD_MODIFY_WIFI_SSID        "sed -i \'s/ssid=\"[^\"]*\"/ssid=\"%s\"/g\' ./wpa_supplicant.conf"
  6. #define SHELL_CMD_MODIFY_WIFI_PSW         "sed -i \'s/psk=\"[^\"]*\"/psk=\"%s\"/g\' ./wpa_supplicant.conf"
  7. #define SHELL_CMD_RESET_WIFI_CONF_FILE    "cp default_wpa_supplicant.conf wpa_supplicant.conf"
  8. int main(int arc, char *argv[])
  9. {
  10.     char shell_cmd[256] = {0};
  11.     // 重置WiFi配置文件
  12.     system(SHELL_CMD_RESET_WIFI_CONF_FILE);
  13.     // 修改WiFi名称
  14.     snprintf(shell_cmd, sizeof(shell_cmd), SHELL_CMD_MODIFY_WIFI_SSID, "LinuxZn");
  15.     system(shell_cmd);
  16.     // 清除shell_cmd
  17.     bzero(shell_cmd, sizeof(shell_cmd));
  18.     // 修改WiFi密码
  19.     snprintf(shell_cmd, sizeof(shell_cmd), SHELL_CMD_MODIFY_WIFI_PSW, "88888888");
  20.     system(shell_cmd);
  21.  return 0;
  22. }

运行结果:

2bda172a635b91e4bb5f432d90d3f8d7.png

在修改配置文件之前,需要重置一下,保证配置文件的格式正确。

往期推荐:

嵌入式并行多线程处理器,了解一下!

分享几个实用的代码片段(附代码例子)

废旧板子再利用:搭建无线调试环境!

分享嵌入式软件调试方法及几个有用的工具!

手把手教你使用VSCode + gdb + gdbserver调试ARM程序

嵌入式大杂烩周记 | 第 9 期

嵌入式段错误的3种调试方法汇总!

写国际化的嵌入式代码,时间问题如何处理?

在公众号聊天界面回复1024,可获取嵌入式资源;回复 m ,可查看文章汇总。

文章来源: blog.csdn.net,作者:嵌入式大杂烩,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/zhengnianli/article/details/126113460

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。