package main import "bufio" import "io" import "log" import "os" import "strings" func transform(in io.Reader, out io.Writer) { bufw := bufio.NewWriter(out) s := bufio.NewScanner(in) for s.Scan() { line := s.Text() for i, c := range line { if i == 0 { bufw.WriteString(strings.ToLower(string(c))) } else { bufw.WriteString(string(c)) } } bufw.WriteString("\n") } } func main() { if len(os.Args) < 2 { log.Fatalln("Usage upper-line ") } f, err := os.Open(os.Args[1]) if err != nil { log.Fatalln("Error opening file", err) } defer f.Close() var w io.Writer if len(os.Args) >= 3 { w, err = os.Create(os.Args[2]) if err != nil { log.Fatalln("Error creating file", err) } } else { w = os.Stdout } transform(f, w) }