在go语言中实现删除文件中的某些行示例

2023-06-01 00:00:00 语言 删除 示例

在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中逐行显示带有行号的文本文件示例

https://www.zongscan.com/demo333/96093.html

相关文章