]> Pileus Git - ~andy/sfvlug/blob - awk/src/sed-3-sedlife.sh
Add sed and awk presentation
[~andy/sfvlug] / awk / src / sed-3-sedlife.sh
1 #!/bin/bash
2
3 sed -nr '
4         # Buffer input
5         s/^/\n/
6         :s; N; $be; bs; :e
7         s/$/\n/
8         s/ +/         /g
9         s/ *\n/         \n/g
10
11         # Live!
12         :l
13         s/(\n#[^\n]*\n\S+ +[^ 1]+) /\11/g
14         s/(\n\S+ +#[^\n]*\n\S+ +[^ 2]+) /\12/g
15         s/(\n\S+ +\S+ +#[^\n]*\n\S+ +[^ 3]+) /\13/g
16         s/(\n#\S* +[^ 4]+) /\14/g
17         s/(\n\S+ +[^ 5]+) ( +#)/\15\2/g
18         s/(\n\S+ +[^ 6]+) ([^\n]*\n#)/\16\2/g
19         s/(\n\S+ +[^ 7]+) ([^\n]*\n\S+ +#)/\17\2/g
20         s/(\n\S+ +[^ 8]+) ([^\n]*\n\S+ +\S+ +#)/\18\2/g
21         tl
22         s/(\n)([^@\n ])([^@\n ]*)( +)([^\n]+)/\1\5\2@\3\4/g
23         tl
24
25         # Format output
26         s/@//g
27         s/#([0-9]{4,8}) /.\1 /g
28         s/[^0-9]([0-9]{3}) /#\1 /g
29         s/#([0-9]{0,1}) /.\1 /g
30         s/[0-9]/ /g
31
32         # Die!
33         s/ +/ /g;
34         p
35         s/ +/         /g
36         bl
37 ' <<EOF
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 EOF