首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >定制select-string输出。

定制select-string输出。
EN

Stack Overflow用户
提问于 2015-06-09 22:53:28
回答 4查看 2K关注 0票数 1

我有一个文本文件日志,如下所示

代码语言:javascript
复制
2 total number of add errors

我有一个脚本

代码语言:javascript
复制
get-content "c:\logfile.txt | select-string "total number of add errors"

我不记得怎么才能让它只显示数字。

有什么建议吗?

EN

回答 4

Stack Overflow用户

发布于 2015-06-09 23:28:07

您可以将-match与正则表达式一起使用来解析字符串:

代码语言:javascript
复制
get-content "C:\temp\test.txt" | select-string "total number of add errors" | Foreach{if ($_ -match "\d{1,5}") {$matches[0] }}

这将提取最多五位数的数字。如果将有更大的数字,请更改{1,5}中的第二个数字。

票数 1
EN

Stack Overflow用户

发布于 2015-06-09 23:47:07

你不需要"get-content“来输入select-string,它可以直接从一个文件中选择,但我认为它不需要使用select-string就能更灵活地工作,这样你就可以将测试和获取数字结合起来:

代码语言:javascript
复制
gc logfile.txt |%{ if ($_ -match '^(\d+) total number of add errors') { $Matches[1] } }

如果您想尽量避免正则表达式部分,此形状也适用于字符串拆分:

代码语言:javascript
复制
gc logfile.txt | % { if ( $_ -match 'total number of add errors') { ($_ -split ' ')[0] } }
票数 1
EN

Stack Overflow用户

发布于 2015-06-09 23:09:44

假设您总是有行"x total number of add error“,您可以将结果设置为一个字符串,然后从那里对其进行裁剪。

代码语言:javascript
复制
$newString = $firstString.Trim(" total number of add errors")

See link

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30735623

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档