Golang 实现 grep 命令功能 - 简单示例
下面是一个简单的示例,展示如何使用 Golang 实现类似于 grep 命令的功能:
package main
import (
"bufio"
"fmt"
"log"
"os"
"regexp"
)
func main() {
if len(os.Args) < 3 {
fmt.Println("Usage: grep <pattern> <file>")
os.Exit(1)
}
pattern := os.Args[1]
filePath := os.Args[2]
file, err := os.Open(filePath)
if err != nil {
log.Fatal(err)
}
defer file.Close()
scanner := bufio.NewScanner(file)
for scanner.Scan() {
line := scanner.Text()
match, _ := regexp.MatchString(pattern, line)
if match {
fmt.Println(line)
}
}
if err := scanner.Err(); err != nil {
log.Fatal(err)
}
}
在命令行中,你可以使用以下命令来运行程序:
go run main.go <pattern> <file>
其中<pattern>是你要匹配的模式,<file>是你要搜索的文件路径。程序将输出与模式匹配的每一行。
原文地址: http://www.cveoy.top/t/topic/fOIH 著作权归作者所有。请勿转载和采集!