加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

[日常] Go语言圣经-查找重复行

发布时间:2020-12-16 19:35:41 所属栏目:大数据 来源:网络整理
导读:从标准输入中读取数据 1.if 2.map key 3. 4.bufio 5. 6.fmt.Printf 注意: go EOF ctrl+d cat input | go run main.go dup1,go import ( "bufio" "fmt" "os" ) func main() { content := make(map[string]int) input := bufio.NewScanner(os.Stdin) for inpu

从标准输入中读取数据

1.if

2.map key

3.

4.bufio

5.

6.fmt.Printf

注意:

go

EOF

ctrl+d

cat input | go run main.go

dup1,go

import (
"bufio"
"fmt"
"os"
)

func main() {
content := make(map[string]int)
input := bufio.NewScanner(os.Stdin)
for input.Scan() {
content[input.Text()]++
}
for line,n := range content {
if n >= 1 {
fmt.Printf("%d t %s n",n,line)
}
}
}

  

从文件中读取数据

1.os.Open

2.os.Open

3.

4.map

import (
"bufio"
"fmt"
"os"
)

func main() {
content := make(map[string]int)
files := os.Args[1:] //获取命令行参数里的文件路径
if len(files) == 0 {
//从标准输入中读取数据
countLines(os.Stdin,content)
} else {
//从文件中读取数据
//如果有多个文件
for _,path := range files {
f,err := os.Open(path) //读取文件
//读取出错
if err != nil {
fmt.Fprintf(os.Stderr,"dup2:%v n",err)
continue
}
countLines(f,content)
//注意方法名的大小写
f.Close()
}
}
for line,n := range content {
if n > 1 {
fmt.Printf("%dt%sn",line)
}
}
}

//声明一个函数,实参类型:os.File,content map[string]int
func countLines(f
os.File,content map[string]int) {
input := bufio.NewScanner(f)
for input.Scan() {
content[input.Text()]++
}
}
~

  

一口气把全部输入数据读到内存中,一次分割为多行,然后处理它们

1.ReadFile

2.strings.Split

<div class="cnblogs_Highlighter">
<pre class="brush:go;gutter:true;">package main

import (
"fmt"
"io/ioutil"
"os"
"strings"
)

func main() {
content := make(map[string]int)
files := os.Args[1:] //获取命令行参数里的文件路径
//从文件中读取数据
//如果有多个文件
for ,path := range files {
data,err := ioutil.ReadFile(path) //读取文件
//读取出错
if err != nil {
fmt.Fprintf(os.Stderr,"dup3:%v n",err)
continue
}
msgs := strings.Split(string(data),"n")
for
,msg := range msgs {
content[msg]++
}
}
for line,line)
}
}
}

  

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读