【需求场景】
之前的shell脚本中配寄存器调用的是./ads w <devsel> <reg> <val>,现在工具换了,工具名和参数以及使用方式都变了,变成了echo "<devsel> <reg> <val>" > /sys/class/ti-spi/ads/write。但是,之前写的那些脚本散落在各个目录下手动一行行改太费劲了,就算有notpad++这类支持列编辑模式的软件,改起来也得一天,还易错,更重要的是,手疼!于是乎,想到了写个程序干这件事,程序员嘛,就要有这种懒惰的智慧。
【思路原理】
一切皆文件,我把它一行行读回来,查找当前行中有没有要替换的,有则把它抠掉,剩余的再前接一个后接一个。但这里还需要注意,原shell脚本中字符串之间的空格个数不尽相同,有的甚至使用tab键,如果生硬的搜索某个定死的长串,则不能做到很好的兼容性。
【代码】
#include <stdio.h> #include <stdlib.h> #include <string.h> #define LINE 1024 /* 将字符串腰斩 */ char *strncpy_waist(char *str, int offset, int len) { int i=0; for (i=0;i<len;i++) { *(str + i) = *(str + i + offset); } while (*(str + i)) { *(str + i) = '