程序名字
countline
os 包来获取运行参数
运行的时候要提供两个参数,一个是目录,一个是扩展名
如:
countline . go
没有运行参数的就退出程序
- if len(os.Args) != 3 {
- fmt.Println("countline [Dir] [extention]")
- return
- }
计算文件有多少个 ‘\n’
遍历目录
filepath.Walk会第二个成员是一个函数,其中的path就是遍历得到的文件路径,经过判断它是一个文件,就直接读出来。
完整代码:
- package main
-
- import (
- "fmt"
- "io/IoUtil"
- "os"
- "path/filepath"
- "strings"
- )
-
- var (
- sum int64
- )
-
- func main() {
- if len(os.Args) != 3 {
- fmt.Println("countline [Dir] [extention]")
- return
- }
- filepath.Walk(os.Args[1],n)
- sum = sum + n
- }
- }
- return @H_404_42@nil
- })
- fmt.Println("total lines: ",sum)
- }
-
- //获取得文件的扩展名,最后一个.后面的内容
- func getExt(f string) (ext string) {
- // fmt.Println("ext:",f)
- index := strings.LastIndex(f,".")
- data := []byte(f)
- for i := index + 1; i < len(data); i++ {
- ext = ext + string([]byte{data[i]})
- }
- return
- }
-
- func countFileLine(name string) (count int64,count)
- return
- }