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

如何用Bash命令或Python脚本删除TSV文件中第二列为1的行

处理大TSV文件:删除第二列值为1的行

方案1:Bash(awk命令)

针对2GB级别的大文件,awk是高效轻量的选择——它无需加载整个文件到内存,逐行处理速度极快。直接执行以下命令即可完成过滤:

awk '$2 != 1' input.tsv > output.tsv
  • 逻辑说明:awk会遍历input.tsv的每一行,仅保留第二列值不等于1的行,并将结果写入output.tsv。
  • 注意事项:替换input.tsv为你的源文件名,output.tsv为目标输出文件名;该命令在Linux、macOS默认自带,Windows用户可通过Git Bash或WSL执行。

方案2:Python脚本

如果需要用Python处理,推荐采用逐行读写的方式,避免一次性加载大文件导致内存溢出:

# 逐行过滤大TSV文件,排除第二列为1的行
with open('input.tsv', 'r', encoding='utf-8') as infile, open('output.tsv', 'w', encoding='utf-8') as outfile:
    for line in infile:
        # 按制表符分割列(TSV标准分隔符),若文件实际为空格分隔,可改为split()
        columns = line.strip().split('\t')
        # 确保行格式合法且第二列不是'1'
        if len(columns) >= 2 and columns[1] != '1':
            outfile.write(line)
  • 逻辑说明:脚本逐行读取源文件,检查每一行的第二列,符合条件的行直接写入输出文件,内存占用极低,适配超大文件场景。
  • 注意事项:根据文件实际编码调整encoding参数,替换脚本中的文件名。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 00:05:55