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

如何在bash命令行批量为process程序指定输入输出文件并添加输出文件名后缀

批量处理文件的Bash实现方案

基础方案:for 循环(无额外依赖,适配所有bash环境)

直接遍历目标文件,逐个调用process程序,自动跳过已经生成的处理后文件,兼容含空格、特殊字符的文件名:

for file in *; do
  # 仅处理普通文件,跳过目录和已处理完成的文件
  [ -f "$file" ] && [[ ! "$file" =~ -processed$ ]] || continue
  process "$file" "${file}-processed"
done

如果只需要处理特定后缀的文件,比如所有.log格式的文件,修改通配符即可:

# 仅处理后缀为.log的文件
for file in *.log; do
  [ -f "$file" ] || continue
  process "$file" "${file}-processed"
done

调试技巧

正式执行前可以把命令中的process替换为echo process,先打印所有待执行的命令,确认文件名、路径完全符合预期后,再去掉echo实际运行,避免误操作。

进阶方案

递归处理子目录文件

如果需要处理当前目录及所有子目录下的目标文件,使用find命令实现:

find . -type f ! -name "*-processed" -exec process {} {}-processed \;

并行加速处理

文件数量较多时,可以使用parallel工具调用多核心并行处理,大幅提升效率:

parallel process {} {}-processed ::: *[!-processed]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 13:48:04