问题标签 [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.
regex - 如何从 Select-String 中获取捕获的组?
我正在尝试使用 Powershell(版本 4)从 Windows 上的一组文件中提取文本:
到目前为止,一切都很好。这给出了一组很好的MatchInfo
对象:
接下来,我看到捕获在matches 成员中,所以我将它们取出:
这使:
或作为列表| Format-List
:
这就是我停下来的地方,我不知道如何进一步获取捕获的组元素列表。
我试过添加另一个| ForEach-Object -MemberName Groups
,但它似乎返回与上面相同。
我得到的最接近的是 with | Select-Object -Property Groups
,这确实给了我我所期望的(一组列表):
但是后来我无法从每个组中提取捕获的组,我尝试| Select-Object -Index 1
只得到其中一组。
更新:一个可能的解决方案
似乎通过添加| ForEach-Object { $_.Groups.Groups[1].Value }
我得到了我想要的东西,但我不明白为什么 - 所以我不能确定在将这种方法扩展到整套文件时我是否能够得到正确的结果。
为什么它有效?
作为旁注,这| ForEach-Object { $_.Groups[1].Value }
(即没有第二个.Groups
)给出了相同的结果。
我想补充一点,在进一步尝试后,似乎可以通过删除 piped 来缩短命令| Select-Object -Property Groups
。
regex - 使用 Select-String 从 txt 文件中提取括号中的所有事件标题
我正在尝试在我的一个日志中提取事件的标题,这只是一个包含大量数据的文本文件。文件名是eventlog-1-5-2016.txt
(日期始终是当前日期)。文件中的每一行都是一个事件,如下所示:
我只想浏览文件并提取括号中的标题,不包括括号本身,并将列表输出到控制台或文本文件。
我也尝试过输出到 txt 文件,但我遗漏了一些东西。你能告诉我为什么这不起作用:
安慰:
归档:
如果这是错误的,甚至是更好的方法。
额外的问题,路径可以自动计算当前日期并更正文件名以便将来粘贴吗?(不是主要的!)
powershell - 使用 Powershell 查找模式并发送电子邮件
我有一个脚本,它通过 xml 文件搜索模式,然后用结果创建一个文件。然后,当搜索找到匹配项时,它会通过电子邮件发送文件。但是,这部分不起作用。任何帮助(或调整)都会很棒:
powershell - Select-String 花费的时间太长。我该如何优化它
我真的想加快这个脚本的速度。我有一个目录,里面有大约 17k 个文件:
powershell - 匹配图案和大小的字符串
我想在文本文件中搜索两个字符串。仅当第一个字符串大于 8 个字符时才会打印输出。
这是我要运行的命令:
所以我想在文件 std_server*.out 中搜索 CPU 和 APPLICATION 的值,但我只想在 CPU 的值大于 8 个字符时打印这些值。
我怎么做?
目前,我有一个与'(cpu=|application=")'一起使用的基本版本,但是它会打印出 CPU 的所有值,并且我只希望在 CPU 值过高时打印出应用程序(CPU > 8)。
提前致谢。
string - PowerShell - 从文本文件中查找和复制 URL 并复制到另一个由管道分隔的文本文件
我需要一个Powershell 脚本,它读取给定文件以查找关键字“匹配:”和“替换:”的任何出现,并将其前面的行复制到另一个文本文件中的新行,并用管道分隔并结束。下面的例子。
输入
输出
所以每次找到关键字“匹配:”时,它前面的 URL 都会被复制到新文本文件中的新行,然后是管道和“替换:”前面的 URL
powershell - 匹配 > 11 个字符的选择字符串,并且在文件中的某个点之后开始
我想在文件 (std_serverX.out) 中搜索字符串cpu=的值,即 11 个字符或更大。该文件可以包含最多或超过 100 万行的任何位置。
为了进一步限制搜索,我希望在第一次出现字符串Java Thread Dump后开始搜索cpu=。在我的源文件中,字符串Java Thread Dump直到大约 1057465 行长的文件的 # 1013169 行才开始,因此Java Thread Dump之前的 96%是不必要的。
这是我要搜索的文件的一部分:
上面可以看到 cpu= 191362359.38有 12 个字符长(包括句号和 2 个小数位)。如何匹配它以便忽略小于 11 个字符的cpu=值并且不打印到文件中?
这是我到目前为止所拥有的:
我已将我的命令简化为绝对基础,因此我不会被其他搜索要求弄糊涂。
另外,我希望这个命令尽可能基本,如果可能的话,它可以在 Powershell 的一个命令行中运行。所以没有高级脚本或定义的变量,如果我们可以避免的话...... :)
这与我打开的先前消息有关,由于我没有准确定义我的要求而变得复杂。
在此先感谢您的帮助。
安东
powershell - PowerShell 使用变量从 Select-String 输出中删除路径
首先,我想道歉。我不使用 Powershell。这对我来说是一次很棒的学习经历!如果我的代码让你畏缩,我很抱歉 :)
我与多个建筑物一起工作,有时很难判断用户在哪里,最好搜索一下用户今天登录的位置。
我在用户登录时使用批处理脚本保存到文件,以便在提交故障单时可以搜索它,但不包括计算机甚至建筑物。每天都会自动生成一个新文件。
这是绑定为 GPO 的登录批处理脚本:
这是我用来搜索用户的 powershell 脚本:
这似乎很好用,但是当我使用脚本时,输出对我来说很奇怪,它显示了它搜索过的文件的路径,我不希望这样。我只想要信息的输出。
如何从输出中删除“\path\to\my\saved\file-20160209.csv:1:”部分?我也需要根据日期进行更改,如果可能的话,我想使用一个变量。
我玩了 -Replace 但我无法让它完成我想要的任务。
任何援助将不胜感激 :)
powershell - 如何整合 windows powershell 选择字符串?
这个命令有效,但想知道是否有更简洁、简洁的方法来做到这一点。例如,更少的管道、更少的命令、更少的开关等。主要是更少的字符。
谢谢!
string - Powershell - 是否可以避免在字符串中找到字符串
我正在尝试将基于字符串的变量与基于 .csv 的列表进行比较,以确定字符串是否存在。我忽略了考虑变量可能是项目列表之一的子字符串的可能性。
在下面的代码之前,我已提示用户输入名字和姓氏,然后使用提供的信息,执行以下操作以生成 8 个字符的用户名,然后检查列表以查看该用户名可用或已采取。
所以如果在 Userlist.csv 我们有一个用户名列表:
- 史密斯
- 白色
- 白威
ETC ...
最终用户输入“Harry Smit”,它将生成一个用户名“smith”,然后 IF 语句将在当前用户名“smithj”内的列表中找到“smith”,并将用户名更新为“smithhi”,但这不是我希望实现的行为,我希望它发现用户名“smith”不存在并返回原始用户名。
感谢任何人可以提供的任何帮助,希望有一个简单的解决方案。