当前位置: 首页 > news >正文

Go语言删除文本文件中的指定行

GO语言删除文本文件中的指定行

  • 1. 思路
  • 2. 处理文件
  • 3. 处理后的文本文件

1. 思路

假设现在有一个文本文件,我们需要删除文件中乱码的行。我们可以使用go的os库来处理文件,遍历整个文件然后将除过乱码的行写入一个新文件,以此来实现我们的需求。

2. 处理文件

假设我们现在有一个配置文件hello.conf,用户经常修改导致文件错乱或出现乱码情况,我们需要去除乱码行以保证配置文件可用。
如下一个示例文件,注释使用#加文本,配置信息使用等号分隔,我们需要去除掉文件中的空行、乱码行、不包含=和#的行和包含#号却不在开头的行。

#系统版本
version=v1.0.0#系统平台
platform=arm
#数据库信息database=127.0.0.1;3306;123456;mysql
@1234
#https端口
httpsport=8443
8443#dd
#用于开启https的设置
enablehttps=false#插入数据库是否携带服务名称
is.add.name=false
#设备型号
model=RTD-1

首先以可读写的方式打开文件,并使用换行符来遍历文件。通过特定条件筛选出可用行,并将其写入新文件中,最后修改新创建的文件,完成处理。

package import ("bufio""io""log""os""strings"
)const (FILE = "hello.conf"NEWFILE = "hellonew.conf"
)func main() {deleteBadLine()
}func deleteBadLine() {//以可读写方式打开文件file, err := os.OpenFile(FILE, os.O_RDWR, 0666)if err != nil {log.Fatal(err)}defer file.Close()//创建一个文件并以可读写方式打开destFile, err := os.OpenFile(NEWFILE, os.O_CREATE | os.O_RDWR, 0666)if err != nil {log.Fatal(err)}defer destFile.Close()//将文件内容写入缓冲区中reader := bufio.NewReader(file)for {//以换行符来遍历文件line, err := reader.ReadString('\n')if err != nil {log.Fatal(err)}//读到文件结尾if err == io.EOF {break}//根据特定条件筛选行if len(line) == 0 || line == "\r\n" || !strings.Contains(line, "=") && !strings.Contains(line, "#") || strings.Contains(line, "#") && !strings.HasPrefix(line, "#") {log.Println("Bad line:", line)continue} else {log.Println("Normal line:", line)//将可用的行写入新文件if _, err = destFile.WriteString(line); err != nil {log.Fatal(err)}}}//处理完毕,将新创建的文件重命名//linux系统可以通过重命名来覆盖静态文件,若其他系统,则需要先进行删除或备份,再重命名os.Rename(NEWFILE, FILE)
}

3. 处理后的文本文件

#系统版本
version=v1.0.0
#系统平台
platform=arm
#数据库信息
database=127.0.0.1;3306;123456;mysql
#https端口
httpsport=8443
#用于开启https的设置
enablehttps=false
#插入数据库是否携带服务名称
is.add.name=false
#设备型号
model=RTD-1

相关文章:

Go语言删除文本文件中的指定行

GO语言删除文本文件中的指定行 1. 思路2. 处理文件3. 处理后的文本文件 1. 思路 假设现在有一个文本文件,我们需要删除文件中乱码的行。我们可以使用go的os库来处理文件,遍历整个文件然后将除过乱码的行写入一个新文件,以此来实现我们的需求…...

Arthas GC日志-JVM(十八)

上篇文章说jvm的实际运行情况。 Jvm实际运行情况-JVM(十七) Arthas介绍 因为arthas完全是java代码写的,我们直接用命令启动: Java -jar arthas-boot.jar 启动成功后,选择我们项目的进程。 进入我们可用dashboard…...

ISC 2023︱诚邀您参与赛宁“安全验证评估”论坛

​​8月9日-10日,第十一届互联网安全大会(简称ISC 2023)将在北京国家会议中心举办。本次大会以“安全即服务,开启人工智能时代数字安全新范式”为主题,打造全球首场AI数字安全峰会,赋予安全即服务新时代内涵…...

分享一个计算器

先看效果&#xff1a; 再看代码&#xff08;查看更多&#xff09;&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>计算器</title><style>* {box-sizing: border-box;}body…...

Android 13 Launcher——长按图标弹窗背景变暗

目录 一.背景 二.修改代码 一.背景 客户定制需要长按图标弹窗让其背景变暗,所以需要进行定制,如下是定制流程,本篇是接上篇https://gonglipeng.blog.csdn.net/article/details/132171100 的内容 二.修改代码 主要代码逻辑在ArrowPopup中的reorderAndShow方法和closeCom…...

Elasticsearch概述和DSL查询总结

目录 Elasticsearch概述 1. 什么是Elasticsearch 2. 作用 3. 特点 DSL&#xff08;Domain Specifit Language&#xff09;特定领域语言&#xff1a; 概念和作用 查询代码总结 最后附项目准备 1.创建搜索工程&#xff08;maven工程&#xff09; 2.配置文件 application…...

扩展卡尔曼滤波器代码

文章目录 前言问题状态向量和观测向量加性噪声的形式状态方程及求导观测方程及求导状态初始化过程噪声和观测噪声卡尔曼滤波过程code 前言 卡尔曼滤波器在1960年被卡尔曼发明之后&#xff0c;被广泛应用在动态系统预测。在自动驾驶、机器人、AR领域等应用广泛。卡尔曼滤波器使…...

9:00开始面试,9:08就出来了,这问题问的实在是····

外包工作3年&#xff0c;今年裸辞跳槽&#xff0c;很幸运的是找到了下家&#xff0c;不过 自从加入到这家公司&#xff0c;每天不是在加班就是在加班的路上&#xff0c;薪资倒是给的不少&#xff0c;所以我也就忍了。没想到6月一纸通知&#xff0c;所有人都不许加班&#xff0…...

揭秘:5个美国程序员与日本程序员的差异

大家好&#xff0c;这里是程序员晚枫。想了解更多精彩内容&#xff0c;快来关注程序员晚枫 今天以美国和日本程序员为例&#xff0c;给大家分享一下国外程序员的生活。 以下是五个美国程序员和日本程序员的的区别&#xff1a; 工作方式&#xff1a;美国程序员通常更注重自由和…...

Springboot实现简单JWT登录鉴权

登录为啥需要鉴权&#xff1f; 登录需要鉴权是为了保护系统的安全性和用户的隐私。在一个 Web 应用中&#xff0c;用户需要提供一定的身份信息&#xff08;例如用户名和密码&#xff09;进行登录&#xff0c;登录后系统会为用户生成一个身份令牌&#xff08;例如 JWT Token&am…...

C++设计模式创建型之工厂模式整理

一、工厂模式分类 工厂模式属于创建型模式&#xff0c;一般可以细分为简单工厂模式、工厂模式和抽象工厂模式。每种都有不同的特色和应用场景。 二、工厂模式详情 1、简单工厂模式 1&#xff09;概述 简单工厂模式相对来说&#xff0c;在四人组写的《设计模式------可复用面…...

前端安全XSS和CSRF讲解

文章目录 XSSXSS攻击原理常见的攻击方式预防措施 CSRFCSRF攻击原理常见攻击情景预防措施&#xff1a; CSRF和XSS的区别 XSS 全称Cross Site Scripting&#xff0c;名为跨站脚本攻击。为啥不是单词第一个字母组合CSS&#xff0c;大概率与样式名称css进行区分。 XSS攻击原理 不…...

本地化部署自建类ChatGPT服务远程访问

本地化部署自建类ChatGPT服务远程访问 文章目录 本地化部署自建类ChatGPT服务远程访问前言系统环境1. 安装Text generation web UI2.安装依赖3. 安装语言模型4. 启动5. 安装cpolar 内网穿透6. 创建公网地址7. 公网访问8. 固定公网地址 &#x1f340;小结&#x1f340; 前言 Te…...

一、Webpack相关(包括webpack-dev-server用以热更新和html-webpack-plugin)

概念与功能&#xff1a; webpack是前端项目工程化的具体解决方案。它提供了友好的前端模块化开发支持&#xff0c;以及代码压缩混淆、处理浏览器端JavaScript的兼容性、性能优化等强大的功能。 快速上手&#xff1a;隔行变色 -S实际是--save的简写&#xff0c;表示安装的第三方…...

安全防御(3)

1.总结当堂NAT与双机热备原理&#xff0c;形成思维导图 2.完成课堂nat与双机热备试验 引用IDS是指入侵检测系统&#xff0c;它可以在网络中检测和防御入侵行为。IDS的签名是指根据已知入侵行为的特征制定的规则&#xff0c;用于检测和警告可能存在的入侵行为。签名过滤器可以根…...

AR远程专家指导在汽车改装上的应用有哪些?

随着科技的不断发展&#xff0c;AR增强现实技术逐渐走进了我们的生活。加上商贸国际化&#xff0c;远程协同纵深到制造生产的更多环节&#xff0c;研发协同、工艺优化等场景复杂、跨层级、需要频繁沟通确认的流程正通过AR应用实现全面远程化的过渡&#xff0c;在汽车行业&#…...

css-3:什么是响应式设计?响应式的原理是什么?如何做?

1、响应式设计是什么&#xff1f; 响应式网站设计&#xff08;Responsive WEB desgin&#xff09;是一个网络页面设计布局&#xff0c;页面的设计与开发应当根据用户行为以及设备环境&#xff08;系统平台、屏幕尺寸、屏幕定向等&#xff09;进行相应的相应和调整。 描述响应式…...

Armstrong数,n位数等于其各位数的n次方之和。

//Armstrong数具有以下特征&#xff1a;一个n位数等于其各位数的n次方之和。 //例如&#xff1a;1531^35^33^3 16341^46^43^44^4 #include<stdio.h> #include<math.h> //实在不知道的暴力求解方法 int main() {//Armstrong数具有以下特征&#xff1a;一个…...

blender的下载安装和配置中文环境

引言 在3D建模和动画设计领域&#xff0c;Blender 作为一款强大且免费的开源软件&#xff0c;一直以优秀的性能和对众多技术的支持赢得了大批用户的喜爱。然而&#xff0c;对于刚接触这款软件的用户而言&#xff0c;其安装和配置过程可能会带来一定困扰&#xff0c;尤其是在设…...

MyCat配置rule.xml、server.xml讲解

1. rule.xml分片规则配置文件 rule.xml中配置的主要就是拆分表的规则&#xff0c;rule.xml中主要包含两类标签 tableRule 和Function。 tableRule标签里面主要配置我们的分片规则&#xff0c;Function里面涉及的是分片规则里面所涉及的java类&#xff0c;都是在function中配置…...

7种智能提取方案深度解析:网盘直链下载助手的跨平台文件管理革命

7种智能提取方案深度解析&#xff1a;网盘直链下载助手的跨平台文件管理革命 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 &#xff0c;支持 百度网盘 / 阿里云盘 / 中国移动云…...

ClaudeCodeAnywhere:构建安全AI代码执行器的架构与实战

1. 项目概述&#xff1a;一个让Claude“无处不在”的代码执行器最近在开发者圈子里&#xff0c;一个名为“ClaudeCodeAnywhere”的项目引起了我的注意。简单来说&#xff0c;它解决了一个非常具体且高频的痛点&#xff1a;如何让像Claude这样的AI助手&#xff0c;能够安全、便捷…...

3步解放暗黑2存档:Diablo Edit2角色编辑器完全指南

3步解放暗黑2存档&#xff1a;Diablo Edit2角色编辑器完全指南 【免费下载链接】diablo_edit Diablo II Character editor. 项目地址: https://gitcode.com/gh_mirrors/di/diablo_edit 你是否曾因暗黑破坏神2角色build失误而懊恼&#xff1f;是否厌倦了数百小时刷装备却…...

基于MCP协议构建专属AI开发助手:从原理到实践

1. 项目概述&#xff1a;一个为开发者定制的MCP服务器最近在折腾AI应用开发&#xff0c;特别是想给Claude、Cursor这类智能助手增加一些“超能力”&#xff0c;让它们能直接操作我本地的开发环境。比如&#xff0c;让AI帮我直接运行单元测试、查看最近的Git提交、或者分析某个目…...

2026届最火的AI论文助手解析与推荐

Ai论文网站排名&#xff08;开题报告、文献综述、降aigc率、降重综合对比&#xff09; TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 在人工智能生成内容&#xff08;AIGC&#xff09;技术迅猛发展之际&#xff0c;它一方面提升…...

嵌入式扫码模组:POS机核心部件技术解析与选型指南

1. 项目概述&#xff1a;固定式POS机里的“眼睛”与“大脑”如果你拆开过一台超市、便利店或者餐厅里常见的固定式POS机&#xff0c;可能会发现一个有趣的现象&#xff1a;那个用来扫商品条码的“窗口”或“枪口”&#xff0c;其内部结构远比我们想象的要精密。它不是一个简单的…...

MISC实战:从受损pcap到关键数据提取的全链路取证分析

1. 受损pcap文件修复实战指南 遇到打不开的流量包文件就像拿到一张破损的地图&#xff0c;明明知道宝藏就在里面却无从下手。我处理过上百个损坏的pcap文件&#xff0c;最常见的报错是"Not a pcap/pcapng file"或"File has invalid header"。这时候别急着…...

【信息科学与工程学】信息科学领域工程——第二篇 材料工程10 光学材料 (1) (光通信必学必会)

表1:光学材料知识库 第一部分:光学基础理论与数学模型 编号 算法/策略名称和伪代码/数学方程式 核心数学描述/规律 关键参数/变量 物理/化学/工程意义/控制目标 典型应用场景 优点与局限 关联知识连接点 1.1.1 麦克斯韦方程组 ∇D = ρ_f ∇B = 0 ∇E = -∂B/∂t ∇…...

基于RAG与模型微调构建个性化AI数字分身:从原理到实践

1. 项目概述&#xff1a;一个能模仿你的数字替身最近在AI圈里&#xff0c;一个名为richard3153/persona-mimic的项目引起了我的注意。光看名字&#xff0c;“Persona Mimic”——人格模仿&#xff0c;就足够让人浮想联翩了。这玩意儿到底是干嘛的&#xff1f;简单来说&#xff…...

仅限档案学研究者获取:NotebookLM定制提示词库V2.3(含17个NARA/中国第一历史档案馆认证模板)

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;NotebookLM档案学研究辅助 NotebookLM 是 Google 推出的基于 LLM 的研究型笔记工具&#xff0c;其核心能力在于对用户上传的私有文档&#xff08;如 PDF、TXT、DOCX&#xff09;进行语义理解与上下文关…...