linux shell 打印第几行,linux – 在shell中,只打印命令输出中的特定行/单词

本文介绍如何使用cloc和XMLStarlet命令从cloc输出中筛选出文件修改(82,2137)和行添加(7,1281)的具体数字,实现高效获取代码库变更信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这是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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值