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

如何通过循环批量合并前缀相同的文本文件

如何通过循环批量合并前缀相同的文本文件

这个需求太接地气了,手动挨个用cat合并肯定要疯,用shell循环就能一次性搞定,我给你两种实用的方案:

方案一:简单直接的基础循环

这是最适合你当前场景的方法,假设所有目标文件都在当前目录下:

# 遍历所有唯一的前缀,批量合并文件
for prefix in $(ls *.24o | cut -c1-4 | sort -u); do
    cat "${prefix}"*.24o > "${prefix}_combined"
done

我给你拆解下每部分的作用:

  • ls *.24o:列出当前目录下所有后缀为.24o的文件
  • cut -c1-4:截取每个文件名的前4个字符(也就是你说的相同前缀)
  • sort -u:对前缀排序并去重,避免重复处理同一个前缀
  • 循环里的"${prefix}"*.24o:精准匹配所有以当前前缀开头的.24o文件
  • > "${prefix}_combined":把合并后的内容写入到前缀_combined的文件里,比如ajac_combined

方案二:更健壮的版本(处理特殊文件名)

如果你的文件名里可能包含空格、换行或者其他特殊字符,上面的方法可能会出问题,这时候可以用更安全的写法:

# 用find+read处理特殊文件名的场景
find . -maxdepth 1 -type f -name "*.24o" | sed 's/^\.\/\(....\).*/\1/' | sort -u | while read -r prefix; do
    cat "${prefix}"*.24o > "${prefix}_combined"
done

这个版本用find命令来获取文件列表,再通过sed提取前缀,最后用while read来遍历,能避免特殊字符导致的错误。

两种方法都能帮你自动完成所有前缀文件的合并,不用再手动敲无数个cat命令啦!

备注:内容来源于stack exchange,提问作者deepblue_86

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.15 12:28:13