下面是一个简单的示例,展示如何使用 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>是你要搜索的文件路径。程序将输出与模式匹配的每一行。

Golang 实现 grep 命令功能 - 简单示例

原文地址: http://www.cveoy.top/t/topic/fOIH 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录