Text-Processing
如何使用常見的 Linux 命令行工具從 javascript 文件中刪除所有註釋?
我有一個非常需要註釋的 javascript 文件。Javascript 使用 C 風格的註釋:
//this is a single line comment
和
/* this is a multi-line comment */
然而,實際的程式碼看起來更接近這個:
/* blah blah // [NOTE] blah blah // blah // blah blah blah // blah // blah blah function("string", false); // 1: blah blah blah blah blah blah // [1] https://example.com function("string", true); /* blah blah * blah blah //* / function("string", false); // * * * / // 18: blah blah blah blah blah blah // [-] (part1) https://example.org/43 function("string", 0); // * * * / // 20: blah blah blah blah blah blah // [NOTE] blah blah blah blah blah blah blah blah blah blah blah blah // [-] https://example.org/62015 function("some_string", "string"); // (comment) // 0301: blah blah blah blah blah blah // [-] https://example.org/205 // function("string", false); // 040: blah blah blah blah blah blah // What is this? // [-] https://example.org/58917 function("string", true); // 050: blah blah blah blah blah blah // [-] https://example.org/57226 function("string", false); // 103: blah blah blah blah blah blah // [-] https://example.org/53751 // function("string", false); // 203: blah blah blah blah blah blah // [WARNING] This may break // [-] https://example.org/70082 function("string", false); // 27: blah blah blah blah blah blah // [-] https://example.org/57170 // function("string", 90); // default: 90 // 55: blah blah blah blah blah blah // [-] https://example.org/73595 // function("string", true); // * * * / // ***/ function("string", 99); //comment comment
我找到的答案,就像這個一樣,處理更簡單的情況。
shell script - 如何從文件中刪除所有註釋?- Unix & Linux Stack Exchange如何從文件中刪除所有註釋?
我遇到的主要問題是我的各種正則表達式過於貪婪,例如,選擇從第一個
/*
到最後一個的所有內容*/
。我沒有嘗試 Perl,因為我不熟悉它。而且,不幸的是,我嘗試過的工具並不支持我想嘗試的所有正則表達式語法。我不確定哪種簡單工具最適合這項任務。
你使用
cpp -undef -P your_file.js
orcc -undef -E -P -xc your_file.js
。如果您不認為
cpp
或cc
不夠“常用”的工具,那麼運氣不好。他們真的應該是。