Александър обнови решението на 21.10.2015 02:01 (преди над 2 години)
+package main
+
+import "strings"
+
+const (
+ date_length = 19
+ ipv4_start = 20
+)
+
+func ExtractColumn(logContents string, column uint8) string {
+ var lines = strings.Split(logContents, "\n")
+ var column_values = make([]string, len(lines))
+ for j, line := range lines {
+ if len(line) == 0 {
+ continue
+ }
+ switch column {
+ case 0:
+ column_values[j] = line[:date_length]
+ case 1:
+ column_values[j] = line[ipv4_start : ipv4_start+strings.IndexByte(line[ipv4_start:], ' ')]
+ case 2:
+ column_values[j] = line[ipv4_start+2+strings.IndexByte(line[ipv4_start+1:], ' '):]
+ }
+ }
+ return strings.TrimRight(strings.Join(column_values, "\n"), "\n") + "\n"
+}
Добра работи, но: