Stephen McQuay 1 year ago
commit
19681a0702
Signed by: Stephen McQuay (smcquay) <stephen@mcquay.me> GPG Key ID: 4E4B72F479BA3CE5
3 changed files with 70 additions and 0 deletions
  1. 27
    0
      LICENSE
  2. 8
    0
      README.md
  3. 35
    0
      main.go

+ 27
- 0
LICENSE View File

@@ -0,0 +1,27 @@
1
+Copyright (c) 2016, stephen mcquay
2
+
3
+All rights reserved.
4
+
5
+Redistribution and use in source and binary forms, with or without modification,
6
+are permitted provided that the following conditions are met:
7
+
8
+    * Redistributions of source code must retain the above copyright notice,
9
+      this list of conditions and the following disclaimer.
10
+    * Redistributions in binary form must reproduce the above copyright notice,
11
+      this list of conditions and the following disclaimer in the documentation
12
+      and/or other materials provided with the distribution.
13
+    * Neither the name of authpixious nor the names of its contributors
14
+      may be used to endorse or promote products derived from this software
15
+      without specific prior written permission.
16
+
17
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
18
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
19
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
20
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
21
+CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
22
+EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
23
+PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
24
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
25
+LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
26
+NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
27
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

+ 8
- 0
README.md View File

@@ -0,0 +1,8 @@
1
+# slg is structured log grep
2
+
3
+Example:
4
+
5
+```bash
6
+$ echo "key=val key2=val key3=val" | slg key2
7
+key2=val
8
+```

+ 35
- 0
main.go View File

@@ -0,0 +1,35 @@
1
+package main
2
+
3
+import (
4
+	"bufio"
5
+	"fmt"
6
+	"os"
7
+	"strings"
8
+)
9
+
10
+func main() {
11
+	keys := map[string]bool{}
12
+	for _, k := range os.Args[1:] {
13
+		keys[k] = true
14
+	}
15
+
16
+	s := bufio.NewScanner(os.Stdin)
17
+
18
+	for s.Scan() {
19
+		ss := []string{}
20
+		for _, f := range strings.Fields(s.Text()) {
21
+			kv := strings.Split(f, "=")
22
+			if len(kv) != 2 {
23
+				continue
24
+			}
25
+			k := kv[0]
26
+			if _, ok := keys[k]; !ok {
27
+				continue
28
+			}
29
+			ss = append(ss, f)
30
+		}
31
+		if len(ss) > 0 {
32
+			fmt.Println(strings.Join(ss, " "))
33
+		}
34
+	}
35
+}

Loading…
Cancel
Save