【问题标题】:Powershell Select-StringPowershell 选择字符串
【发布时间】:2020-09-29 17:02:51
【问题描述】:

我需要你的 PowerShell 帮助。

我需要具有固定日期的 Select-String(在变量中)。 & 将内容设置为 result.txt 示例:$Date = "01.07.2020"

但我还需要选择日期低于我在变量中写入的字符串。

我的代码:Get-Content -Path log.txt | Select-String "?????" | Set-Content $result.txt

  • 在 log.txt 中有很多字符串,例如“创建日期 01.07.2020”; " 创建日期 01.06.2020 "

【问题讨论】:

  • 日志文件中的行是否按顺序排列?那是dd.MM.yyyy 还是MM.dd.yyyy
  • 我的脚本提前将日期从 MM.dd.yyyy 转换为 dd.MM.yyyy(选择数据之前)我只需要选择数据。 )
  • 我的意思是在源文件中,log.txt
  • 在源文件中 - dd.MM.yyyy
  • 带有日期的行混合如下:第 1 行:创建日期 01.07.2020 第 2 行:创建日期 02.05.2020 第 3 行:创建日期 28.08.2020 等。

标签: powershell select-string


【解决方案1】:

123.txt

Creation date 01.07.2020
Creation date 02.05.2020
Creation date 01.06.2020
Creation date 28.08.2020

示例脚本

$file = "C:\Users\userprofile\Desktop\test\123.txt"
$regexpattern = "\d{2}\.\d{2}\.\d{4}"
$content = Get-Content $file | Where-object { $_ -match $regexpattern}

foreach($line in $content){

    $line.Substring(13,11)

}

我使用正则表达式来查找您想要输出的行。只有当它与我们的正则表达式匹配时,我们才会获得内容,然后对于我们找到的每一行,我使用子字符串来提取日期。如果你愿意,你也可以为此组合一个正则表达式。由于我们知道这些行具有相同数量的字符,因此使用 substring 函数是安全的。

如果您想将该输出输出到文件中,只需找到 $line.Substring(13,11),然后在其后面添加 | Out-file "C:\Users\userprofile\desktop\test\output.txt" -append

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-08-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多