程序批量将文本文件中的某字符替换

摘要:
于是乎,想到了写个程序干这件事,程序员嘛,就要有这种懒惰的智慧。一切皆文件,我把它一行行读回来,查找当前行中有没有要替换的,有则把它抠掉,剩余的再前接一个后接一个。但这里还需要注意,原shell脚本中字符串之间的空格个数不尽相同,有的甚至使用tab键,如果生硬的搜索某个定死的长串,则不能做到很好的兼容性。

【需求场景】

之前的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) = '

免责声明:内容来源于网络,仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇有关调用接口的个人理解MongoDB安装与配置(Ubuntu)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

随便看看

vue cli3.0 打包静态文件目录的配置

默认情况下,vuecli3.0打包生成的文件也会作为cli2.0在dist目录中生成,但css、js和img等静态文件不会像cli2.0那样放在静态文件夹中。您需要修改vue.config.js:module的几个配置变量。exports={publicPath:“dist”,//输出文件目录lintOnSave:false,//保存时eslint检查ass...

JAVA 实现CLOB转String

CLOB定义了用于在数据库中保存文件的类型。SQLCLOB是一种内置类型,它将一个大型字符对象作为列值存储在数据库表的一行中。默认情况下,驱动程序使用SQLlocator实现Clob对象,这意味着Clob对象包含指向SQLCLOB数据的逻辑指针,而不是数据本身。Clob对象在其创建的事务期间有效。在一些数据库系统中,文本也用作CLOB的别名。例如,SQL S...

聚合初始化

从当前C++标准库中提取,提供了两个容器来表示数组的概念:array表示静态数组,vector表示动态数组。这两种类型都可以使用列表初始化进行初始化。std::array={1,2,3,4,5};std::vector<int>={1,2,3,4,5};这实际上是聚合初始化。聚合初始化历史悠久,在C语言中就已经存在。intarray[5]={1,2,3,4,...

java--枚举

前言:Java中的enum也是一种类类型,它与一般类的区别在于1.世界上只有一个实例2.不能有公共构造函数3。您不能继承和继承枚举事例publicenumHttpCode{SUCCESS(200,“操作成功”)。//定义的每个枚举项都等效于通过构造函数HttpCode(int code,Stringmessage)实例化没有枚举项的通用HttpCo...

adb

ADB(AndroidDebugBridge)ANR(ApplicationNoResponding)ADB实际上是Android调试桥AndroidDebugBridge的缩写。adb是C/S体系结构的命令行工具。这里我们介绍一些常用的命令:adbdevices,获取设备列表和设备状态[xuxu:~]$adbdevicesList-devicesattac...

js学习-es6实现枚举

最近,我大部分时间都在写dart,突然使用了js。我发现js不能直接声明枚举。目录枚举功能对象冻结()符号实现反映了不可更改值的唯一性。请注意,枚举特性枚举值不能重复,也不能修改。Switchcase可以直接判断对象。冻结()对象。方法可以冻结对象。无法更改实现constEnumSex=Object。冷冻枚举性别。人=1;安慰日志;//符号(男性)表示值co...