bash - 如何将自定义字符串附加到错误输出并将其重定向到文件
问题描述
给定:
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}'
解决方案
试试这个:
ffprobe cmd... 2>&1|awk '{print "ABC="$1}' >output.txt
推荐阅读
- java - 通过污点分析和自定义注释检测 Find Sec Bugs 中的信息泄漏
- python - Python 将 *unknown 格式字符串解析为 json 或 dict
- elasticsearch - 无法在 Ubuntu 上的 kubernetes 集群中访问 Kibana 仪表板服务
- docker - 为 Swarm 安装 Redis docker 镜像集群?
- ggplot2 - 结合 sf 的 poligons 在 ggplot 中绘图时,栅格的 NA 值具有填充
- linkedin-api - 如何从 Javascript SDK 使用 Linkedin API v2?
- swift - 从 UITextfield 文本推送 ViewController
- docker - 具有私有 docker 注册表 v2 的 Kubernetes
- ssrs-2008 - SSRS 子报表是否有效?
- hyper-v - 从托管在 Hyper-V 上的 Minikube 中获取主机 IP