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

如何在Bash中列出ls命令筛选出的每个文件的行数?

在Bash中列出指定文件并同时显示行数的方法

当然可行,这里有几种实用的实现方式,结合ls和wc就能满足需求:

方法一:循环遍历+合并ls与wc输出

通过循环逐个处理匹配的文件,先获取行数再和ls的详细信息拼接:

for file in *usc*.vhd; do
    # 确保是普通文件(避免匹配到目录)
    if [[ -f "$file" ]]; then
        # 只获取行数(< 符号避免wc输出文件名)
        line_count=$(wc -l < "$file")
        # 用awk把行数追加到ls输出末尾
        ls -l -S "$file" | awk -v lines="$line_count" '{print $0, "| 行数:", lines}'
    fi
done

方法二:先排序再输出行数+文件信息

先通过ls -S按文件大小排序,再逐个统计行数并格式化输出:

ls -S *usc*.vhd | while read -r file; do
    if [[ -f "$file" ]]; then
        # 格式化输出:行数占5位宽度,后面跟文件详细信息
        printf "%-5d %s\n" $(wc -l < "$file") "$(ls -l "$file" | cut -d' ' -f2-)"
    fi
done

关于wc的小说明

  • wc -l filename会同时输出行数和文件名,比如123 test.usc.vhd
  • wc -l < filename只会输出纯数字的行数,更适合脚本中提取数值使用

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 12:31:08