Linux下如何将Piper TTS日志定向至/dev/null并保留自定义提示符?
区分输出并定向的方法
方法1:通过grep过滤目标行
如果Piper日志和自定义提示符都输出到同一流(比如stderr),可以将所有输出合并后,用grep只保留提示符行:
python script.py 2>&1 | grep '^\*\*\*\*>'
原理是先把标准错误(stderr)重定向到标准输出(stdout),再用grep匹配以****>开头的行,过滤掉带时间戳的Piper日志。
方法2:修改脚本分离输出流
如果脚本由你编写,直接在输出提示符时指定输出到标准输出(stdout),让Piper的日志默认输出到标准错误(stderr):
import sys # 输出自定义提示符到stdout print('****>', file=sys.stdout) # Piper相关调用保持默认(日志输出到stderr) # ... 你的Piper调用代码 ...
之后执行以下命令即可只保留提示符:
python script.py 2>/dev/null
方法3:用awk精准过滤
和grep逻辑类似,awk也可以实现匹配过滤:
python script.py 2>&1 | awk '/^\*\*\*\*>/ {print}'
内容的提问来源于stack exchange,提问作者David Xanatos
相关产品推荐
相关产品推荐

