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

如何编写Bash脚本合并任意数量JSONL文件并打乱行顺序

处理可变数量JSONL文件的合并打乱脚本

直接利用bash的$@变量就能轻松处理可变数量的命令行参数,它会完整保留所有传入的参数(包括带空格的文件名)。以下是完整的merge.sh脚本:

#!/bin/bash

# 检查是否传入了至少一个文件参数
if [ $# -lt 1 ]; then
    echo "错误:请传入至少一个JSONL文件作为参数"
    exit 1
fi

# 合并所有指定文件并打乱行顺序
cat "$@" | shuf

脚本说明

  • $#:表示传入脚本的参数总数,用来判断是否有文件被传入,避免无参数时执行出错
  • "$@":代表所有传入的命令行参数,加双引号是为了兼容文件名包含空格的情况
  • cat "$@":将所有指定的文件内容合并输出
  • shuf:接收合并后的内容,随机打乱行的顺序

使用步骤

  1. 给脚本添加执行权限:
    chmod +x merge.sh
    
  2. 运行脚本,传入任意数量的JSONL文件:
    # 合并2个文件
    ./merge.sh file1.jsonl file2.jsonl
    # 合并4个文件
    ./merge.sh file1.jsonl file2.jsonl file3.jsonl file4.jsonl
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 02:50:54