我正在尝试使用grep和/或awk创建一个脚本来回答下面列出的问题(参考图形以供参考)
动机: ESLint生成的报告针对每个文件以及每个文件的潜在违规行为 - 但据我所知,我无法生成任何统计信息来帮助某人对此执行安全的代码审查。
注意:我使用ScanJS的ESLint配置文件生成这些文本文件报告,但我想让它们更容易阅读。
修改:
我格式化了规则,因此每个规则都是这样的:
accidental_assignment
而不是:
"scanjs-rules/accidental_assignment": 1
然后我运行了这个命令:
while read l; do grep -i "${l//\"/}" results.txt; done < rules.txt
关于此的好处:它按字母顺序打印出每个规则违规,并标识以帮助您查看results.txt文件。
结果图片:link
期望的改进:我仍然希望它打印出实际规则然后计算 - 如图3所示。有任何建议吗?
答案 0 :(得分:1)
试试这个。
cat results.txt | grep scanjs-rules | wc
答案 1 :(得分:1)
您应该能够使用此命令计算包含已搜索字符串的行:
cat results.txt | grep <searched> | wc -l
一起
for f in `sed -e 's/"\(.*\/\)\(.*\)\(".*\)/\1\2/' pattern.txt`;
do printf $f' - '; cat result.txt | grep $f | wc -l;
done
将打印结果
scanjs-rules/accidental_assignment - 2
scanjs-rules/assign_to_hostname - 2
scanjs-rules/assign_to_href - 4
哪里
$ cat pattern.txt
"scanjs-rules/accidental_assignment":1,
"scanjs-rules/assign_to_hostname":1,
"scanjs-rules/assign_to_href":1,
和结果文件示例:
$cat result.txt
This is dummy line
312:9 warrning from scanjs-rules/accidental_assignment
Another dummy line
Another dummy line
Another dummy line
312:9 warrning from scanjs-rules/assign_to_hostname
312:9 warrning from scanjs-rules/accidental_assignment
Another dummy line
312:9 warrning from scanjs-rules/assign_to_href
Another dummy line
312:9 warrning from unsafe scanjs-rules/assign_to_hostname
312:9 warrning from scanjs-rules/assign_to_href
312:9 warrning from scanjs-rules/assign_to_href
312:9 warrning from scanjs-rules/assign_to_href