Blame


1 aa83d772 2004-05-17 devnull awk ' # rotate
2 aa83d772 2004-05-17 devnull # Input line: string (tab) ["b"|"e"|"a"] (tab) number
3 aa83d772 2004-05-17 devnull # Output several lines:
4 aa83d772 2004-05-17 devnull # string (tab) ["b"|"e"|"a"] (tab) number
5 aa83d772 2004-05-17 devnull # rotated string (tab) ["b"|"e"|"a"] (tab) number
6 aa83d772 2004-05-17 devnull # rotated string (tab) ["b"|"e"|"a"] (tab) number
7 aa83d772 2004-05-17 devnull # ...
8 aa83d772 2004-05-17 devnull #
9 aa83d772 2004-05-17 devnull # In the output strings, tildes are replaced by spaces
10 aa83d772 2004-05-17 devnull
11 aa83d772 2004-05-17 devnull BEGIN { FS = OFS = "\t" }
12 aa83d772 2004-05-17 devnull
13 aa83d772 2004-05-17 devnull / %key / { # if explicit sort.key is provided, do not rotate
14 aa83d772 2004-05-17 devnull print $0
15 aa83d772 2004-05-17 devnull next
16 aa83d772 2004-05-17 devnull }
17 aa83d772 2004-05-17 devnull
18 aa83d772 2004-05-17 devnull {
19 aa83d772 2004-05-17 devnull t1 = $1 #t1 will be $1 with tildes changed to spaces
20 aa83d772 2004-05-17 devnull gsub(/%~/, "QQ5QQ", t1) #hide real tildes
21 aa83d772 2004-05-17 devnull gsub(/~/, " ", t1) #change tildes to spaces
22 aa83d772 2004-05-17 devnull gsub(/QQ5QQ/, "%~", t1) #restore real tildes
23 aa83d772 2004-05-17 devnull print t1, $2, $3
24 aa83d772 2004-05-17 devnull i = 1
25 aa83d772 2004-05-17 devnull while ((j = index(substr($1, i+1), " ")) > 0) {
26 aa83d772 2004-05-17 devnull i += j
27 aa83d772 2004-05-17 devnull printf("%s, %s\t%s\t%s\n", \
28 aa83d772 2004-05-17 devnull substr(t1, i+1), substr(t1, 1, i-1), $2, $3)
29 aa83d772 2004-05-17 devnull }
30 aa83d772 2004-05-17 devnull }
31 aa83d772 2004-05-17 devnull ' $*