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

Linux下按列数删除行:如何移除.fam文件中列数不足6的行

fam文件过滤列数不足6行的解决方案

方法1:awk命令(推荐,大文件秒处理)

Linux、Unix、macOS系统直接在终端执行以下命令即可:
awk 'NF>=6' file.fam > filtered_file.fam

  • 命令说明:awk内置变量NF代表当前行按空白符分割的字段数,该命令仅保留字段数≥6的行,处理结果输出到新文件filtered_file.fam,不会修改原文件,安全性高。
  • 结果验证:执行wc -l file.fam filtered_file.fam即可对比原文件和处理后文件的行数,确认异常行已删除。

方法2:Python代码实现(适合需要集成到自有脚本的场景)

逐行读取处理,内存占用极低,适合任意大小的文件:

with open("file.fam", "r", encoding="utf-8") as f_in, open("filtered_file.fam", "w", encoding="utf-8") as f_out:
    for line in f_in:
        # 按空白符分割行,跳过首尾空白后统计字段数
        if len(line.strip().split()) >= 6:
            f_out.write(line)

以上两种方法都完全适配PLINK fam文件的空白分隔格式,不会误判行尾空格为额外字段,示例中仅含5个字段的6 6 0 0 1 行会被正确过滤,其余正常行全部保留。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 13:06:06