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

Linux下不使用split和sed将大文本按500行拆分后横向拼接为矩阵问询

方案1:使用awk单行命令实现(无需额外工具)

直接在命令行执行以下命令即可一步得到结果,全程不需要手动拆分文件:

awk '{line_idx = (NR-1) % 500; group_idx = int((NR-1)/500); if (group_idx == 0) {row[line_idx] = $0} else {row[line_idx] = row[line_idx] "\t" $0}} END {for (i=0; i<500; i++) print row[i]}' 你的输入文件名 > 输出文件名
  • 命令默认用制表符\t作为列分隔符,你可以根据需求替换为逗号、空格等其他分隔符
  • 如需调整分组大小,直接修改命令里的两处500为对应数值即可
  • 最后一组不足500行的位置会自动留空,不需要额外处理
方案2:使用Python脚本实现(兼容性更强)

如果环境中没有awk,用Python脚本实现更灵活,参数调整也更直观:

# 按需修改以下配置参数即可
input_path = "输入文件路径.txt"
output_path = "输出文件路径.txt"
group_size = 500
delimiter = "\t" # 列分隔符

# 读取文件内容
with open(input_path, "r", encoding="utf-8") as f:
    lines = [line.rstrip("\n") for line in f]

# 按指定大小分组
groups = []
for i in range(0, len(lines), group_size):
    groups.append(lines[i:i+group_size])

# 横向拼接后写入输出文件
max_row_cnt = group_size
with open(output_path, "w", encoding="utf-8") as f:
    for row_idx in range(max_row_cnt):
        current_row = []
        for g in groups:
            current_row.append(g[row_idx] if row_idx < len(g) else "")
        f.write(delimiter.join(current_row) + "\n")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 15:27:03