Mercurial > mercurial > hgweb_golang.cgi
view src/tac.go @ 65:0369656be06c default tip
many changes.
author | pyon@macmini |
---|---|
date | Fri, 20 May 2022 06:30:34 +0900 |
parents | de451fa0c9cd |
children |
line wrap: on
line source
package main import ( "bufio" "flag" "fmt" "os" ) func main() { flag.Parse() files := flag.Args() var lines []string // Input if len( files ) == 0 { lines = ReverseLines( os.Stdin, nil ) } else { for _, arg := range files { f, err := os.Open( arg ) if err != nil { fmt.Fprintf( os.Stderr, "tac : %v\n", err ) continue } l := ReverseLines( f, nil ) f.Close() lines = append( lines, l... ) } } // Output for _, line := range lines { fmt.Println( line ) } } func ReverseLines( f *os.File, l []string ) []string { input := bufio.NewScanner( f ) for input.Scan() { l = append( l, input.Text() ) } for i, j := 0, len(l) - 1; i < j; i, j = i + 1, j - 1 { l[i], l[j] = l[j], l[i] } return l }