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

Linux/Unix下统计TSV文件指定列每行字符数的方法

如何统计TSV文件指定列的每行字符数?

方法一:用awk命令(快速便捷)

awk是处理分隔符文本的高效工具,适合快速处理TSV/CSV文件。假设你要统计第2列的字符数(对应示例中的句子列),可按以下方式执行:

针对TSV文件(制表符分隔):

awk -F '\t' '{len = length($2); print $0 "\t" len}' input.tsv > output.tsv
  • -F '\t':指定文件的分隔符为制表符(TSV标准分隔符)
  • length($2):计算第2列的字符总数(包含空格)
  • print $0 "\t" len:输出原行内容,追加制表符和字符数后写入新文件

针对你示例中的CSV文件(逗号分隔):

若处理逗号分隔的文件,仅需修改分隔符参数:

awk -F ',' '{len = length($2); print $0 ", " len}' input.csv > output.csv

执行后即可得到你给出的示例效果:

输入:
ab, an apple
ac, not juice
ad, I like

输出:
ab, an apple , 7
ac, not juice, 8
ad, I like, 5

方法二:用Python脚本(灵活扩展)

如果需要处理带引号字段、特殊字符等复杂场景,可使用Python的csv模块编写脚本:

import csv

# 处理TSV文件
with open('input.tsv', 'r', newline='', encoding='utf-8') as infile, \
     open('output.tsv', 'w', newline='', encoding='utf-8') as outfile:
    reader = csv.reader(infile, delimiter='\t')
    writer = csv.writer(outfile, delimiter='\t')
    for row in reader:
        # 确保行中存在目标列(此处为第2列,索引从0开始)
        if len(row) >= 2:
            char_count = len(row[1])
            row.append(str(char_count))
            writer.writerow(row)

若处理CSV文件,只需将代码中的delimiter='\t'替换为delimiter=','即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 06:00:48