Ich habe ein kleines Shellskript geschrieben, um die Codezeilen meiner Lisp-Quelldateien halbwegs sinnvoll abschätzen zu können. Leer- sowie durch Strichpunkte eingeleitete Kommentarzeilen können recht leicht mithilfe von grep herausgefiltert werden, aber Docstrings sind ein nichttriviales Problem. Man mag es für einfach halten, schlicht alle Strings herauszufiltern; doch weder sed noch grep können hier helfen, weil sie nur zeilenweise arbeiten.

Also versuchte ich mich an einem Perl-Einzeiler. Auch perl -p und perl -l arbeiten lediglich zeilenweise, doch fand ich heraus, daß sich dieses Verhalten durch die Option -0777 ändern läßt. Ich habe nicht die leiseste Ahnung, was diese Option bedeutet, aber sie scheint zu funktionieren.

Die fertige Zeile lautet: egrep -v "^$| *;" dateiname.lisp | perl -pne 's/".*?"//mgs' -0777 | wc -l. Das Skript außen herum kann man sich dazudenken.