问题标签 [select-string]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
403 浏览

regex - Powershell LastWriteTime 使用 select-string -pattern 匹配的每个项目

尝试查看文件列表并在powershell中使用正则表达式解析电话号码,但我还想包含每个文件的LastWriteTime

我目前正在使用它,但它似乎只从第一场比赛中提取我需要的日期信息

这导致

任何关于此的想法都会很棒

@Matt 提供的解决方案

0 投票
1 回答
1703 浏览

powershell-2.0 - 从日志文件中查找最新的匹配条目

我有一个日志文件,该文件全天不断被写入。我需要一种方法来检查日志文件,并找到与特定字符串匹配的最后一个条目。

该条目可能是从末尾算起的 5 行或 5000 行。

我不愿意阅读整个日志(到一天结束时可能超过 60000 行)。

我也不想取出所有匹配的条目然后获取最后一个,因为当事情运行时,匹配的条目可能占日志的三分之一。

到目前为止,我能找到的一切要么是关于使用Select-String将所有匹配项放入一个数组中,然后获取最后一个,要么是使用(Get-Content xxx) [-1..-x]来获取最后 x 行。两者都不是我需要的。

到目前为止,我管理的最接近的是:

但这并不完美,因为它只读取最后 5000 行,如果我追求的结果在第 5001 行,它将失败。

0 投票
2 回答
873 浏览

powershell - Powershell在文件内检查变量中的文本但忽略空格

我正在尝试使用 PowerShell 做的是在配置文件中搜索带有随机数量的空格或制表符的文本字符串

使用

我认为.replace(' ' , '')可能有助于解决仅去掉空格的观点。然后我想,这里有很多比我聪明的人!

提前致谢

纳蒂

0 投票
1 回答
49 浏览

xml - 从模式 A 到模式 B 的 Select-String

有没有办法用来Select-String查找和之间的所有XY

例如,如果我有一个包含内容的文件:

我想找到 的所有内容< function >management< /function >,所以我最终会得到:

如果所有分组的大小相同,我可以使用类似的东西:

但是,实际上它们的大小不会相同,所以我不能每次都使用固定的数字。

真的,我需要一种方式来表示返回所有内容:

对于所有匹配的实例。

这可能吗?

我无法在 powershell 中使用标准 xml 工具,因为我正在阅读的文件不是标准 xml,因此我将[line 157: Time 2015-08-04 11:34:00]其作为示例。考虑它的最佳方式是大量的 xml 文件,全部合并到一个 xml 文件中,并通过[line . . .]标题将它们分解。


附加信息:我担心我的示例有点过于简单,实际文件更像:


附加信息 我添加了代码以忽略这些< ?xml version. . .行。我还尝试添加我自己的根元素:

但这给出了一个Array assignment failed because index '-1' was out of range.错误


附加信息 最终结果是这样的:

它基本上忽略了标题[line. . .、xml 定义< ?xml和任何空行,并< open >. . . < /open >在每个部分周围添加了一个标签以使其有效。

0 投票
3 回答
1093 浏览

regex - 提高 PowerShell 过滤语句的性能

我有一个通过 HTTP 访问日志的脚本,根据正则表达式模式过滤掉一些行并将它们复制到另一个文件中:

我的日志可能非常大(最多 2GB),运行最多需要 15 分钟。我能做些什么来提高上述语句的性能吗?

谢谢你的想法!

0 投票
2 回答
423 浏览

powershell - Powershell Select-String 仅列出消息 ID

我正在搜索几个包含“警告”模式的日志文件

这是输出:

我只想列出MsgId: 577C40D906A5481F7E3D31E73CBA2931F7FB744372C5F29B00以及如何做到这一点?

0 投票
2 回答
741 浏览

powershell - 在 PowerShell 选择字符串中使用变量

我有我目前坚持的 PowerShell 脚本的这一部分。基本上,我有两个文件要通过选择字符串进行比较...详细

对于 FileA.txt 中的每个项目,我想对 FileB.txt 执行一个选择字符串以发现它是否存在。如果 FileA.txt 中的行项目在 FileB.txt 中不存在,则将 FileA.txt 行项目打印到屏幕上。

这就是文本文件的样子..或多或少

文件A.txt

文件B.txt

所需的输出如下:

这就是我的 PS 代码现在的样子。我的思考过程是我可以在选择字符串中使用该变量,但它不适合我:(

有人可以帮助我并指出我做错了什么。

0 投票
1 回答
362 浏览

regex - 捕获组在 Select-String 的 -Pattern 末尾不起作用

我最近开始在 Powershell 中使用正则表达式,并且遇到了来自 Select-String cmdlet 的意外响应。

如果您输入如下内容:

您会收到来自 Match-Info 对象的预期结果:

但是如果将捕获组放在 -Pattern 的末尾:

Match-Info 似乎没有找到任何东西,尽管创建了一个:

正如我所说,我对 Powershell 很陌生,所以我认为这种行为是操作员错误。

但是解决方法是什么?这种行为还没有给我带来问题,但考虑到我正在使用的文件(XML 文件中包含的电子手册),我希望它最终会发生。

...

带着敬意,

施韦特

...

澄清:

我让我的例子非常简单来说明行为,但我最初的问题是这种模式:

该文件是我们手册之间链接的索引之一,链接的名称包含在文件每一行的注释块中。

该模式实际上是一个错字,因为名称和注释并没有一直到行尾。当程序在 Match-Info 对象中找不到“链接名”时开始出错时,我发现了它。

一旦我给它链接名称(::)之后出现的字符,它就可以正常工作。将其放入示例中:

0 投票
1 回答
3009 浏览

regex - 将 -SimpleMatch 与 Select-String 一起使用时未捕获匹配项

我一直在使用正则表达式来解析一些 XML 节点中的文本。但是,当我使用-SimpleMatchwith时Select-String,MatchInfo 对象似乎不包含任何匹配项。

我在网上找不到任何表明这种行为是正常的东西。我现在想知道它是否是我的 Powershell 安装。(供参考:我使用的计算机已安装 Powershell 3.0。)

使用一个非常简单的示例,我们可以在使用正则表达式模式时返回预期的 MatchInfo 对象:

但添加-SimpleMatch参数似乎不会返回 MatchInfo 对象中的 Matches 属性:

管道确认已返回 MatchInfo 对象$cGet-Member

以及其他属性,例如 Pattern 和 Line work:

此外,将索引值发送到 Matches 数组时不会产生错误:

我不确定如何解释结果,也不确定为什么会发生。

这种行为是有问题的,因为很多时候我必须搜索包含正则表达式特殊字符的字符串,() 很常见。

扩展示例:

$c.Matches由于在正则表达式模式中使用了括号,因此不返回任何内容,并且$c本身为 null:

Using-SimpleMatch确实会产生一个 MatchInfo 对象,但仍然不会返回任何匹配项:

我发现的解决方法(在 SO 上)是使用 .NET 中的 Regex.Escape 方法:(
参考:Powershell select-string failed due to escape sequence

由于此解决方法从 中返回预期的匹配项Select-String,因此我能够继续编写脚本。

-SimpleMatch但我很好奇为什么使用参数时没有返回匹配项。

...
关于,
施韦特

0 投票
2 回答
1269 浏览

regex - 来自 Select-String 的 Powershell 正则表达式分组

我正在抓取 Web 请求响应以提取 html 代码中保存的信息,该代码重复几次,因此使用选择字符串而不是匹配。我的代码看起来像

返回看起来像:

我无法锻炼一种方法来获取组的第二个元素,例如 TV 或 PS3:

$energenie.RawContent | select-string $regexname -AllMatches | % {$_.matches.groups}

给出一个奇怪的输出

保罗