这是cloc命令的输出片段
C/C++ Header
same 0 0 42812 19019
modified 33 0 128 434
added 3 63 367 207
removed 0 105 265 479
Perl
same 0 0 0 0
modified 0 0 0 0
added 2 0 0 0
removed 0 0 0 0
-------------------------------------------------------------------------------
SUM:
same 0 0 54150 81007
modified 82 0 252 2137
added 7 184 802 1281
removed 0 234 734 1499
-------------------------------------------------------------------------------
使用Shell命令,如何仅打印82,2137(在行中修改)和7,1281(在行中添加)?我需要在“SUM:”下只打印这4个数字而忽略其余的数字.
解决方法:
如果要获取项目的两个版本之间添加/修改的文件/行的数量,可以使用cloc的XML输出正确且稳健地执行此操作:
cloc --xml --out=report.xml --diff bash-4.2.tar.gz bash-4.3.tar.gz
xmlstarlet < report.xml sel -t \
-m /diff_results/modified/total -v @sum_files -o ' ' -v @code -nl \
-m /diff_results/added/total -v @sum_files -o ' ' -v @code -nl
xmlstarlet可以以您想要的任何格式输出数字.此特定示例使用此格式(已修改的文件/行后跟添加的文件/行):
15 11157
203 6058
处理计算机可读输出而不是人类可读输出的好处是,如果cloc稍后稍微改变其输出格式,它将不会中断.
标签:bash,linux,shell
来源: https://codeday.me/bug/20190722/1504338.html