如何解决Windows使用jq尾部日志文件
我正在使用Windows 10 Powershell。
我想拖尾一个JSON格式的日志文件,我也想选择特定的json字段。
示例日志文件:
{"msg":"abc def1","time":"20:08","notneeded1":"xyz","notneeded2":"xyz"}
{"msg":"abc def2","time":"20:09","notneeded2":"xyz"}
{"msg":"abc def3","time":"20:10","notneeded2":"xyz"}
...
我可以在尾随日志文件中添加Wait标志:Get-content -tail 10 -Wait'C:\ Desktop \ data.log'
我可以通过jq选择特定的json字段:Get-content -tail 10'C:\ Desktop \ data.log'| jq'.time,.msg'
但是,我不能同时使用-Wait和jq。关于如何使其工作有任何建议吗?
解决方法
您可以创建自己的函数来处理Powershell管道。自然,您需要更新jq文件的路径。
Function JQ {
Param([parameter(valuefrompipeline)]$line)
begin{
$jq = "C:\temp\jq-win64.exe"
}
process{
$line | &$Jq '.time,.msg'
}
}
Get-Content $jsonfile -tail 10 -Wait | JQ
您可以通过参数化所需属性来扩展它,但这应该可以帮助您入门。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。