// Kommentare aus Dateien entfernen

7

Was ist der beste Weg, um alle Codekommentare in einem bestimmten Verzeichnis zu entfernen? Ich möchte alle // ... EOL Kommentare und /* blah \*/(oder /** ... \*/) Kommentare entfernen.

Dies ist ein PHP-Projekt, und ich möchte ein wenig weiter gehen als unten beschrieben, jedoch eher aus Sicherheitsgründen als aus Effizienzgründen.

Adrian Schneider
quelle
1
ähm ... wie denkst du, ist das für die Sicherheit? Das Entfernen von Kommentaren erhöht Ihre Sicherheit nicht (es sei denn, Sie haben ein Backdoor-Passwort in Ihren Kommentaren. In diesem Fall kann Ihnen nichts helfen)
Xenoterracide
@xenoterracide: Das normale Passwort würde ein Problem darstellen. Das Backdoor-Passwort kann aus dem Code abgeleitet werden.
Maciej Piechotka
Ich übergebe den Code an eine andere Partei. Es ist eine legale Sache - das ist alles.
Adrian Schneider

Antworten:

0

Dies wird es in Perl tun:

//will delete all comments starting at the beginning of the line with //
perl -p -i -e "s#^//.*$##" <your php file>
//will delete all comments starting somewhere in a line with //
perl -p -i -e "s#^(.*)//.*$#\$1#" <your php file>
//will delete all comments starting somewhere in a line with /* or /**
perl -p -i -e "s#^(.*)/\*+.*$#\$1#" <your php file>
//will delete all comments starting at the beginning of the line with /* or /**
perl -p -i -e "s#^/\*+.*$##" <your php file>

Diese Befehle löschen keine Kommentare mit mehreren Zeilen, wie z

/**
 *
 *
 */

Es ist möglich, dies zu tun, aber Regex mit mehreren Zeilen sind viel schwieriger.

Es wird auch Lösungen für awk, sed, python, ... geben. Aber das sollte es auch tun.

Christian
quelle
1
Beachten Sie, dass Sie auch Probleme mit Zeichenfolgen haben werden, in denen "//" enthalten ist, und wahrscheinlich auch mit anderen Problemen.
Steven D