package main import "fmt" import "io" import "log" import "os" import "bufio" import "strings" func longest(r io.Reader) string { lw := "" s := bufio.NewScanner(r) s.Split(bufio.ScanWords) for s.Scan() { word := s.Text() word = strings.ToLower(word) word = strings.Replace(word, ".", "", -1) word = strings.Replace(word, ",", "", -1) word = strings.Replace(word, "\"", "", -1) for _, word := range strings.Split(word, "—") { if len(word) > len(lw) { if !strings.HasPrefix(word, "http://") { lw = word } } } } return lw } func openFile(path *string) *os.File { f, err := os.Open(os.Args[1]) if err != nil { log.Fatalln(err) } return f } func main() { if len(os.Args) <= 1 { log.Fatalln("Missing file") } f := openFile(&os.Args[1]) fmt.Println(longest(f)) }