-
Notifications
You must be signed in to change notification settings - Fork 7
/
Copy pathlineinfile.test
153 lines (133 loc) · 3.7 KB
/
lineinfile.test
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
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
Go Lineinfile tests:
$ CURRENT="$(pwd)"
$ cd "$TESTDIR/../"
$ go build -o go-replace
$ cd "$CURRENT"
$ alias go-replace="$TESTDIR/../go-replace"
Exec test:
$ go-replace -h > /dev/null
Testing lineinfile mode:
$ cat > test.txt <<EOF
> this is a testline
> this is the second line
> this is the third foobar line
> this is the last line
> EOF
$ go-replace --mode=lineinfile -s foobar -r ___xxx test.txt
$ cat test.txt
this is a testline
this is the second line
___xxx
this is the last line
Testing lineinfile mode with multiple matches:
$ cat > test.txt <<EOF
> this is a testline
> this is the second line
> this is the third foobar line
> this is the foobar forth foobar line
> this is the last line
> EOF
$ go-replace --mode=lineinfile -s foobar -r ___xxx test.txt
$ cat test.txt
this is a testline
this is the second line
___xxx
___xxx
this is the last line
Testing lineinfile mode with multiple matches and --once:
$ cat > test.txt <<EOF
> this is a testline
> this is the second line
> this is the third foobar line
> this is the foobar forth foobar line
> this is the last line
> EOF
$ go-replace --mode=lineinfile -s foobar -r ___xxx --once test.txt
$ cat test.txt
this is a testline
this is the second line
___xxx
this is the foobar forth foobar line
this is the last line
Testing lineinfile mode with multiple matches and --once=unique:
$ cat > test.txt <<EOF
> this is a testline
> this is the second line
> this is the third foobar line
> this is the foobar forth foobar line
> this is the last line
> EOF
$ go-replace --mode=lineinfile -s foobar -r ___xxx --once=unique test.txt
$ cat test.txt
this is a testline
this is the second line
___xxx
this is the last line
Testing lineinfile mode without match:
$ cat > test.txt <<EOF
> this is a testline
> this is the second line
> this is the third foobar line
> this is the foobar forth foobar line
> this is the last line
> EOF
$ go-replace --mode=lineinfile -s barfoo -r ___xxx --once=unique test.txt
$ cat test.txt
this is a testline
this is the second line
this is the third foobar line
this is the foobar forth foobar line
this is the last line
___xxx
Testing lineinfile mode with regex:
$ cat > test.txt <<EOF
> this is a testline
> this is the second line
> this is the third foobar line
> this is the last line
> EOF
$ go-replace --mode=lineinfile --regex --regex-backrefs -s 'f[o]+(b[a]*r)' -r '___$1' test.txt
$ cat test.txt
this is a testline
this is the second line
___bar
this is the last line
$ go-replace --mode=lineinfile --regex --regex-backrefs -s 'not-existing-line' -r '___$1' test.txt
$ cat test.txt
this is a testline
this is the second line
___bar
this is the last line
___
Testing lineinfile mode with lineinfile-before:
$ cat > test.txt <<EOF
> this is a testline
> #global#
> this is the second line
> this is the third foobar line
> this is the last line
> EOF
$ go-replace --mode=lineinfile --lineinfile-before="#global#" -s 'notexisting' -r 'example=foobar' test.txt
$ cat test.txt
this is a testline
example=foobar
#global#
this is the second line
this is the third foobar line
this is the last line
Testing lineinfile mode with lineinfile-after:
$ cat > test.txt <<EOF
> this is a testline
> #global#
> this is the second line
> this is the third foobar line
> this is the last line
> EOF
$ go-replace --mode=lineinfile --lineinfile-after="#global#" -s 'notexisting' -r 'example=foobar' test.txt
$ cat test.txt
this is a testline
#global#
example=foobar
this is the second line
this is the third foobar line
this is the last line