英文:
GoLang: find a string in a file and print the whole line
问题
我可以帮你翻译代码部分,以下是翻译好的内容:
我想在一个非常大的文本文件(大约20GB)中查找字符串,并打印整行而不仅仅是字符串。我还想将该行写入一个新的文本文件。
到目前为止,我只能搜索字符串并得到True或False的结果。你能帮帮我吗?我真的很迷茫,不知道该如何完成。
package main
import (
"fmt"
"io/ioutil"
"os"
"strings"
)
func main() {
var text string
fmt.Print("输入字符串: ")
fmt.Scanln(&text)
b, err := os.Open("output.txt")
content, err := ioutil.ReadAll(b)
if err != nil {
panic(err)
}
s := string(content)
fmt.Println(strings.Contains(s, text))
// 1. 如何搜索字符串并打印整行?
// 2. 如何将该行写入新的文本文件?
}
希望对你有帮助!
英文:
I would like to find string in a very big txt file (app. 20GB), and print the whole line and not just a string. I would also like to write that line in a new txt file.
Till now I only can search for a string and get True or False result. Can you please help me, I am really lost and do not know how to finalize it.
package main
import (
"fmt"
"io/ioutil"
"os"
"strings"
)
func main() {
var text string
fmt.Print("Enter string: ")
fmt.Scanln(&text)
b, err := os.Open("output.txt")
content, err := ioutil.ReadAll(b)
if err != nil {
panic(err)
}
s := string(content)
fmt.Println(strings.Contains(s, text))
// 1. how to search for string and print whole line?
// 2. how to write that line in new txt file?
}
TIA
答案1
得分: 1
1. 如何搜索字符串并打印整行?
答案:
package main
import (
"fmt"
"strings"
)
const output = `Orang yang baru saja memulai atau sudah dalam perjalanan belajar coding pasti sudah tidak asing lagi dengan kata “Stack Overflow”. Dalam website resminya, Stack Overflow digambarkan sebagai “platform publik yang membangun kumpulan pertanyaan dan jawaban coding yang terpercaya.” Platform ini pertama kali dibuat pada tahun 2008 dan seketika mengalahkan popularitas Experts Exchange, sebagai platform tanya-jawab teknologi nomor satu pada saat itu.
Stack Overflow sering diibaratkan sebagai ‘sahabat’ programmer zaman now. Tidak peduli jenis pekerjaan atau lama karir yang dimiliki, seorang programmer pasti pernah membuka situs Stack Overflow untuk mencari jawaban penyelesaian masalah coding yang mereka hadapi. Pertanyaan yang sudah ditandai dengan jenis bahasa pemrogramannya dimaksudkan untuk memudahkan user untuk mencari informasi terkait.
Bagi programmer muda yang belum pernah menggunakan platform ini, berikut adalah beberapa hal yang perlu kamu ketahui sebelum masuk ke komunitas Stack Overflow.
`
func main() {
idxFind := strings.Index(output, "programmer zaman now")
left := strings.LastIndex(output[:idxFind], "\n")
right := strings.Index(output[idxFind:], "\n")
fmt.Println(output[left : idxFind+right])
}
2. 如何将该行写入新的文本文件中?
你可以使用 os
标准库
https://pkg.go.dev/os#Create
英文:
1. how to search for string and print whole line?
answer :
package main
import (
"fmt"
"strings"
)
const output = `Orang yang baru saja memulai atau sudah dalam perjalanan belajar coding pasti sudah tidak asing lagi dengan kata “Stack Overflow”. Dalam website resminya, Stack Overflow digambarkan sebagai “platform publik yang membangun kumpulan pertanyaan dan jawaban coding yang terpercaya.” Platform ini pertama kali dibuat pada tahun 2008 dan seketika mengalahkan popularitas Experts Exchange, sebagai platform tanya-jawab teknologi nomor satu pada saat itu.
Stack Overflow sering diibaratkan sebagai ‘sahabat’ programmer zaman now. Tidak peduli jenis pekerjaan atau lama karir yang dimiliki, seorang programmer pasti pernah membuka situs Stack Overflow untuk mencari jawaban penyelesaian masalah coding yang mereka hadapi. Pertanyaan yang sudah ditandai dengan jenis bahasa pemrogramannya dimaksudkan untuk memudahkan user untuk mencari informasi terkait.
Bagi programmer muda yang belum pernah menggunakan platform ini, berikut adalah beberapa hal yang perlu kamu ketahui sebelum masuk ke komunitas Stack Overflow.
`
func main() {
idxFind := strings.Index(output, "programmer zaman now")
left := strings.LastIndex(output[:idxFind], "\n")
right := strings.Index(output[idxFind:], "\n")
fmt.Println(output[left : idxFind+right])
}
2. how to write that line in new txt file?
You can use os stdlib
https://pkg.go.dev/os#Create
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论