1#!/bin/sh
 2
 3awk '
 4    /^module/{
 5        m=1
 6        split($2,narr,"(")
 7        module=narr[1]"()"
 8    }
 9    /^function/{
10        m=0
11        module=""
12    }
13    /[^=] *assert\(/{
14        if(m) {
15            if(fname!=FILENAME) {
16                fname=FILENAME
17                print "File",fname
18            }
19            if(prevmodule!=module) {
20                prevmodule=module
21                print "  Module",module
22            }
23            assertline=$0
24            sub(/^ */, "", assertline)
25            print "    ",FNR,":",assertline
26        }
27    }
28' *.scad
29