首页 > 解决方案 > 如何将自定义字符串附加到错误输出并将其重定向到文件

问题描述

给定

ffprobe检测mp4远程主机上视频文件持续时间的命令。

预期

的输出ffprobe以自定义字符串为前缀并重定向到文本文件。

问题

有时由于网络错误,ffprobe失败并显示一些错误消息。我想捕获该错误,为其添加自定义字符串前缀并将其发送到文本文件。

示例

此命令将“ABC=55”附加到out.txt其中 55 是发现的持续时间:

ffprobe -v error -show_entries format=duration -of default=noprint_wrappers=1:nokey=1 https://example.com/video.mp4 ' | awk '{print "ABC="$1}' 2>&1 >> out.txt

但是,如果同一命令遇到网络错误,它不会在此处写入“ABC=错误消息”,而是将注释写入文本文件并在控制台中显示该消息。

问题

如何调整这部分以捕获执行错误,在它们前面加上“ABC =”并发送到out.txt

| awk '{print "ABC="$1}' 2>&1 >> out.txt

谢谢你。

编辑

这解决了问题:

2>&1 | awk '{print "ABC="$0}'

标签: bash

解决方案


试试这个:

ffprobe cmd... 2>&1|awk '{print "ABC="$1}' >output.txt

推荐阅读