在go语言中实现删除文件中的某些行示例
Go  /  管理员 发布于 2年前   551
在go语言中如何从一个文件中删除某些行的数据。
比如:
有些时候,由于一些不可预见的原因,一些被下载的文件包含了更多的数据,比如在文件的开头有额外的HTTP请求头信息。那么,如何去删除这些不需要的信息呢?
解决思路:
解决这个问题的方法类似于将一个文件复制到一个新的文件,只是在复制过程中,不需要的数据被省略掉了。在下面的代码例子中,我们将删除文件开头的不需要的数据,只是忽略这些行。
一旦检测到标记%startHERE,我们才开始读取其余的数据。
注意:
为了简单起见,我们将使用corruptFile常量来模拟一个文件。
对于你自己的生产使用,请取消对这些行的注释,以便从一个实际的文件中读取。
代码示例:
package main
import (
"fmt"
"strings"
)
const corruptFile = `HTTP 2.0 OK
Content-Length :123456
%startHERE
some real data bytes
more bytes`
func main() {
// UNCOMMENT这些行来代替从实际文件中读入。
//if len(os.Args) <= 1 {
// fmt.Printf("USAGE : %s <target_filename> \n", os.Args[0])
// os.Exit(0)
//}
//fileName := os.Args[1]
//fileBytes, err := ioutil.ReadFile(fileName)
//if err != nil {
// fmt.Println(err)
// os.Exit(1)
//}
//lines := strings.Split(string(fileBytes), "\n")
lines := strings.Split(string(corruptFile), "\n")
startPrint := false
for i, line := range lines {
//只在%startHERE之后打印
if equal := strings.Index(line, "%startHERE"); equal > 0 {
startPrint = true
}
if startPrint {
fmt.Println(i, line)
// 而不是打印到屏幕上,这是在这里
// 你要开始向一个新的文件写入,又称复制文件。
//在https://www.socketloop.com/tutorials/golang-simple-file-scaning-and-remove-virus-example,
//它是如何做到的?
}
}
}
希望这对您有所帮助,并祝您编码愉快!
相关文章:
在go中逐行显示带有行号的文本文件示例
122 在
学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..123 在
Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..原梓番博客 在
在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..博主 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..1111 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
Copyright·© 2019 侯体宗版权所有·
粤ICP备20027696号