You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在bash中提取loc命令输出的TypeScript代码行数统计值

提取TypeScript代码行数的最优方案

优先推荐用awk实现,仅需一行命令即可直接拿到目标数值:

loc | awk '/^[[:space:]]*TypeScript/ {print $6}'

方案说明

loc的输出是固定列的表格格式,awk默认按任意空白字符分割字段,匹配到TypeScript所在行后,第6个字段正好对应Code列的数值,不需要编写复杂正则处理捕获组,兼容性高、执行效率快。


你之前尝试的方案的修正方法

如果你坚持要用之前的思路,也可以通过调整参数解决问题:

1. grep 提取捕获组

使用GNU grep的Perl正则模式配合\K语法即可只输出捕获的数值:

loc | grep -oP 'TypeScript.*?\K\d+$'

\K作用是丢弃之前匹配到的所有内容,仅输出后面匹配到的数字部分。

2. bash =~ 匹配行尾失败的解决方法

匹配失败通常是因为行尾存在不可见的空白字符(比如空格、制表符、换行符),可以在正则里增加空白匹配规则:

ts_line=$(loc | grep 'TypeScript')
[[ $ts_line =~ TypeScript.*([0-9]+)[[:space:]]*$ ]]
echo ${BASH_REMATCH[1]}

增加[[:space:]]*即可匹配行尾任意数量的空白字符,解决行尾匹配失效的问题。

内容的提问来源于stack exchange,提问作者Ben

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 21:45:01