// 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.


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.


1
Beachten Sie, dass Sie auch Probleme mit Zeichenfolgen haben werden, in denen "//" enthalten ist, und wahrscheinlich auch mit anderen Problemen.
Steven D
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.