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

如何在Linux中无需列号提取含KiB/MiB/GiB的FILESIZE列

提取yt-dlp格式输出中指定格式的FILESIZE数值

生成测试文件

先确保已安装yt-dlp,再生成测试数据文件:

# Debian/Ubuntu系统安装yt-dlp
sudo apt install yt-dlp
# 生成测试文件
yt-dlp -F https://youtu.be/njX2bu-_Vw4 > cp1.txt

可行的Shell命令

使用awk实现不依赖固定列号的提取,核心逻辑是先定位FILESIZE列的位置,再筛选符合格式的数值:

awk '
NR == 1 {
    # 遍历表头,定位FILESIZE所在列
    for (i=1; i<=NF; i++) {
        if ($i == "FILESIZE") {
            col = i
            break
        }
    }
}
NR > 1 && col {
    # 匹配仅包含KiB/MiB/GiB的数值格式
    if ($col ~ /^[0-9.]+(KiB|MiB|GiB)$/) {
        print $col
    }
}' cp1.txt

命令说明

  • 表头处理:遍历第一行的所有列,找到FILESIZE对应的列索引并存储
  • 数据行处理:跳过表头,仅在已定位到目标列的情况下,检查对应列内容是否符合「数字(可带小数点)+KiB/MiB/GiB」的格式,符合则输出
  • 如果需要去重,可追加| sort -u:
    awk '
    NR == 1 {
        for (i=1; i<=NF; i++) {
            if ($i == "FILESIZE") {
                col = i
                break
            }
        }
    }
    NR > 1 && col {
        if ($col ~ /^[0-9.]+(KiB|MiB|GiB)$/) {
            print $col
        }
    }' cp1.txt | sort -u
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 18:33:23