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

如何在awk中运行外部程序?以调用ffmpeg处理文本为例

解决方法

你的awk写法有误,awk无法直接像Shell那样直接写外部命令,另外你漏了ffmpeg必填的-i输入参数,这也是命令没执行的核心原因之一。以下是几种可行的实现方式:

方法一:用awk的system函数直接执行

利用awk内置的system()函数调用Shell命令,注意给带空格的文件名套双引号,避免Shell把空格当成参数分隔符:

awk -F, '{system("ffmpeg -i \""$1"\" -ss "$2" -to "$3" \""$4"\"")}' times.txt

方法二:生成bash脚本后执行

先让awk把每行转换成完整的ffmpeg命令,写入脚本文件,再执行:

  1. 生成脚本文件:
awk -F, '{print "ffmpeg -i \""$1"\" -ss "$2" -to "$3" \""$4"\""}' times.txt > cut_videos.sh
  1. 添加执行权限并运行:
chmod +x cut_videos.sh && ./cut_videos.sh

方法三:通过管道直接传给bash执行

把awk生成的命令直接通过管道交给bash执行,无需生成中间文件:

awk -F, '{print "ffmpeg -i \""$1"\" -ss "$2" -to "$3" \""$4"\""}' times.txt | bash

额外注意点

  • 必须给ffmpeg加上-i参数指定输入文件,这是你原命令的关键疏漏
  • 如果不想看到ffmpeg的冗余日志,可以在命令里追加-v quiet参数,比如:ffmpeg -v quiet -i ...

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 14:59:52