Здравствуйте, я ищу 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 $_;'