/
test.sh
executable file
·87 lines (68 loc) · 2.07 KB
/
test.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
#!/bin/bash
set -e
export PATH=./:$PATH
# eq
echo '"abc"' | R eq '"abc"'
echo '1' | R eq '1'
echo '1.0' | R eq '1.0'
echo 'true' | R eq 'true'
echo '[1,2,3]' | R eq '[1,2,3]'
echo '{"a":{"b":1}}' | R eq '{"a":{"b":1}}'
echo -e '"abc"\n"abc"' | R eq '"abc"' | uniq | R eq true
# not eq
echo '"abc"' | R not eq '"jkl"'
echo '0' | R not eq '1'
echo '1' | R not eq '{}'
echo '{"a":1}' | R not eq '{"b":1,"c":2,"a":1}'
echo -e '"xz"\n"xz"' | R not eq '"abc"' | uniq | R eq true
# pick
echo '{}' | R pick a | R eq '{}'
echo '{"a":1,"b":2}{"a":1}' | R pick a | R eq '{"a":1}'
# omit
echo '{}' | R omit a | R eq '{}'
echo '{"a":1,"b":2}' | R omit a | R eq '{"b":2}'
# path
echo '{"a":{"b":true}}' | R path a.b | R eq true
echo '{"a":{"b":true}}' | R path a.b eq true
echo '{"a":{"c":2}}' | R path a.c | R eq 2
echo '[{"a":1}]' | R path 0.a | R eq 1
! echo '{}' | R path -1
! echo '[0]' | R path 1
! echo '{}' | R path a.b.c.d
# head
echo '[1,2,3,4]' | R head | R eq 1
echo '[1]' | R head | R eq 1
! echo '[]' | R head
# tail
echo '[1,2,3,4]' | R tail | R eq '[2,3,4]'
! echo '[1]' | R tail
! echo '[]' | R tail
# each
echo '[1,2,3]' | R each | head -1 | R eq 1
echo '[1,2,3]' | R each | tail -1 | R eq 3
# map
echo '[{"a":1},{"a":2}]' | R map path a | R eq '[1,2]'
# append
echo '[1]' | R append 2 | R eq '[1,2]'
# concat
echo '[1, 2]' | R concat '[3,4]' eq '[1,2,3,4]'
# values
echo '{"a":1,"b":2}' | R values | R eq '[1,2]'
! echo '[1,2,3]' | R values
# keys
echo '{"a":1,"b":2}' | R keys | R contains a
echo '{"a":1,"b":2}' | R keys | R contains b
# length
echo '[1,2,3,4]' | R length eq 4
# where
echo '{"a":1, "b":2}' | R where '{"a": 1}' | R eq '{"a":1, "b":2}'
# filter
echo '[{"a":1, "b":2}]' | R filter where '{"a":1}' | R eq '[{"a":1,"b":2}]'
# find
echo '[{"a":1, "b":2}]' | R find where '{"a":1}' | R eq '{"a":1,"b":2}'
! echo '[{"a":1, "b":2}]' | R find where '{"a":2}'
# mixin
echo '{"a":1, "b":2}' | R mixin '{"b": 5,"c":3}' | R eq '{"a":1,"b":5,"c":3}'
# mutli-json input
echo '[1,2,3][3,4,5][5,4,3]' | R contains 3 | wc -l | R eq 3
echo '[1,2,3][3,4,5][5,4,3]' | R contains 3 | uniq | R eq true