Bash 如何将自定义字符串附加到错误输出并将其重定向到文件
鉴于: ffprobe命令,用于检测远程主机上mp4视频文件的持续时间 预期: ffprobe的输出以自定义字符串作为前缀,并重定向到文本文件 问题: 有时由于网络错误,ffprobe失败并显示一些错误消息。我想捕获该错误,用自定义字符串作为前缀并将其发送到文本文件 例如: 此命令将ABC=55追加到out.txt,其中55是发现的持续时间: ffprobe-v error-show_entries format=duration-of default=noprint_wrappers=1:nokey=1'| awk'{print ABC=$1}'2>&1>>out.txt 然而,若同一个命令遇到网络错误,它不会在这里写入ABC=error消息,而是将noting写入文本文件并在控制台中显示该消息 问题: 如何调整此部分以捕获执行错误,并将其前缀为ABC=并发送到out.txt |awk'{print ABC=$1}'2>&1>>out.txt 多谢各位 编辑 这就解决了问题: 2> &1 | awk'{打印ABC=$0}' 尝试一下:Bash 如何将自定义字符串附加到错误输出并将其重定向到文件,bash,Bash,鉴于: ffprobe命令,用于检测远程主机上mp4视频文件的持续时间 预期: ffprobe的输出以自定义字符串作为前缀,并重定向到文本文件 问题: 有时由于网络错误,ffprobe失败并显示一些错误消息。我想捕获该错误,用自定义字符串作为前缀并将其发送到文本文件 例如: 此命令将ABC=55追加到out.txt,其中55是发现的持续时间: ffprobe-v error-show_entries format=duration-of default=noprint_wrappers=1:no
ffprobe cmd... 2>&1|awk '{print "ABC="$1}' >output.txt
2> &1 | awk'{print ABC=$0}'修复了它。不得不使用$0@temuri我从你的原始代码中取了$1,我不知道你真正需要的是哪一部分,与第一个字段相比。然而,这是无关紧要的。这里的重点是,应该重定向哪个stderr。