你好我正在寻找一个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