你好我正在尋找一個Perl單線程,如果可能的話,掃描我們所有的Javascript文件,找到所謂的「流氓逗號」。也就是說,逗號出現在數組或對象數據結構的末尾,因此逗號緊接在']'或'}'之前。命令行perl正則表達式查找不受歡迎Javascript逗號
我遇到的主要挑戰是如何使正則表達式檢查]或}非貪婪。正則表達式需要跨越多行,因爲逗號可以結束一行,後面跟着}或]下一行,但是我已經在Minimal Perl這本書的幫助下找到了如何做到這一點。
此外,我想能夠管這個Perl正則表達式(通過find/xargs)的一些文件,所以我想打印輸入文件的名稱和行號該文件。
下面是我的各種嘗試,不是特別接近我的bash的歷史直接工作。在此先感謝:
find winhome/workspace/SsuExt4Zoura/quotetool/js
-name "*.js" | xargs perl -00 -wnl -e '/,\s+$/ and print $_;' find winhome/workspace/SsuExt4Zoura/quotetool/js
-name "*.js" | xargs perl -00 -wnl -e '/,\s+/ and print $_;' find winhome/workspace/SsuExt4Zoura/quotetool/js
-name "*.js" | xargs perl -00 -wnl -e '/,\s+\]/ and print $_;' find winhome/workspace/SsuExt4Zoura/quotetool/js
-name "*.js" | xargs perl -00 -wnl -e '/,\s+[\]\}]/ and print $_;' find winhome/workspace/SsuExt4Zoura/quotetool/js
-name "*.js" | xargs perl -00 -wnl -e '/,\s+[\]\}]/ and print $_;' | wc -l find winhome/workspace/SsuExt4Zoura/quotetool/js
-name "*.js" | xargs perl -00 -wnl -e '/,\s+[\]\}]/ and print $_;' | wc -l find winhome/workspace/SsuExt4Zoura/quotetool/js
-name "*.js" | xargs perl -00 -wnl -e '/,\s+}/ and print $_;' | wc -l find winhome/workspace/SsuExt4Zoura/quotetool/js
-name "*.js" | xargs perl -00 -wnl -e '/,\s+}?/ and print $_;' | wc -l find winhome/workspace/SsuExt4Zoura/quotetool/js
-name "*.js" | xargs perl -00 -wnl -e '/,\s+}+?/ and print $_;' | wc -l find winhome/workspace/SsuExt4Zoura/quotetool/js
-name "*.js" | xargs perl -00 -wnl -e '/,$/' and print $_;' find winhome/workspace/SsuExt4Zoura/quotetool/js
-name "*.js" | xargs perl -00 -wnl -e '/,$/ and print $_;' find winhome/workspace/SsuExt4Zoura/quotetool/js
-name "*.js" | xargs perl -00 -wnl -e '/\,$/ and print $_;'
可能是服務器故障的好人選。 – 2011-05-26 14:40:28
最後一個逗號有什麼問題?這使得添加更多元素變得很容易。 – tchrist 2011-05-26 15:12:34
也許你應該提一下爲什麼這些嘗試不起作用。 – TLP 2011-05-26 15:31:49