我需要记录终端输出。但我只需要一些以关键字开头的输出(例如以“error”开头)。我使用类似的东西:
ls | tee "log.txt"
在此示例命令中,我不想记录终端显示的所有内容。仅当我发现以“De”开头的输出时才记录。我该如何实现这一点?
答案1
如果您的 shell 是bash
,您可以使用进程替换将 的输出转换tee
为 的输入。例如,当将 以“De”开头的行grep
的输出过滤为 时,命令将是:ls
log.txt
ls |tee >(grep ^De >| log.txt)