Марина обнови решението на 25.10.2015 14:34 (преди над 2 години)
+package main
+
+import (
+ "bufio"
+ "fmt"
+ "log"
+ "os"
+ "strings"
+)
+
+func ExtractColumn(filename string, column uint8) {
+ file, err := os.Open(filename)
+ if err != nil {
+ log.Fatal(err)
+ }
+ defer file.Close()
+
+ scanner := bufio.NewScanner(file)
+ for scanner.Scan() {
+ fmt.Println(parseSplit(scanner.Text(), column))
+ }
+
+ if err := scanner.Err(); err != nil {
+ log.Fatal(err)
+ }
+}
+
+func parseSplit(s string, column uint8) (t string, ip, msg string) {
+ parts := strings.SplitN(s, " ", 4)
+
+ if column == 0 {
+ t = strings.Join(parts[0:2], " ")
+ ip, msg = "", ""
+ }
+
+ if column == 1 {
+ t = ""
+ ip, msg = parts[2], ""
+ }
+
+ if column == 2 {
+ t = ""
+ ip, msg = "", parts[3]
+ }
+
+ return t, ip, msg
+}
+
+func main() {
+ //the log file with the content
+ filename := "log.txt"
+ ExtractColumn(filename, 0)
+ //ExtractColumn(filename, 1)
+ //ExtractColumn(filename, 2)
+}
Прочети условието отново - първия аргумент на ExractColumn е съдържанието на лог, не името на файл в който има лог.
Препоръчвам да си пускаш тестовете котио сме дали вместо да ползваш main за тестване. Може да ползваш И тестовете на Таня.