Windows系统下如何检索Docker日志指定字符串,求grep替代方案
你之前使用findstr返回多余内容的核心原因是:findstr默认会将空格分隔的多个字符串当作独立匹配条件,只要行内包含任意一个字符串就会命中,并不是功能不支持。可根据你的使用场景选择以下三种方案:
方案1:CMD环境下修正findstr参数
添加/c参数即可让findstr将引号内的内容当作完整短语匹配,命令如下:
docker logs wp-mysql 2>&1 | findstr /c:"ready for connections"
方案2:PowerShell环境下使用原生匹配工具
PowerShell自带的Select-String是官方提供的类grep工具,兼容性更强,命令如下:
docker logs wp-mysql 2>&1 | Select-String "ready for connections"
如果需要输出纯文本结果和Linux grep效果完全一致,可调整为:
docker logs wp-mysql 2>&1 | Select-String "ready for connections" | ForEach-Object { $_.Line }
方案3:完全兼容Linux使用习惯
如果你的设备已经安装了Git for Windows,直接打开Git Bash终端即可直接使用原Linux命令,无需任何修改:
docker logs wp-mysql 2>&1 | grep "ready for connections"
内容的提问来源于stack exchange,提问作者Ashar
相关产品推荐
相关产品推荐

