PowerShell中的grep和sed等效项

scr*_*207 5 linux svn powershell

我正在尝试在PowerShell中执行以下语句

svn info filename | grep '^Last Changed Date:'| sed -e 's/^Last Changed Date: //'
Run Code Online (Sandbox Code Playgroud)

我已经试过了:

svn info filename | Select-String '^Last Changed Date:'
Run Code Online (Sandbox Code Playgroud)

我期望低于输出

2018年12月20日,星期四4:50:40 AM

小智 19

这可能会回避这个问题,但您可以通过从现有的 git 安装导入它们来在 powershell 中使用sedand语句。grep

如果安装,C:\Program Files\Git\usr\bin包含您正在寻找的语句的一个很好的选择,例如sed.exe. 您可以为它们设置别名并按照您习惯的方式使用它们:

Set-Alias -Name sed -Value C:\"Program Files"\Git\usr\bin\sed.exe
Run Code Online (Sandbox Code Playgroud)

您可以在配置文件中定义这些别名以保留它们。创建一个名为的文件C:\Users\*UserName*\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1,并允许通过调用以下命令在具有管理员权限的 powershell 中执行脚本:

set-executionpolicy remotesigned
Run Code Online (Sandbox Code Playgroud)


小智 8

要删除前导标签,您可以使用带有 RegEx 模式的捕获组。

svn info filename | Select-String '^Last Changed Date: (.*)$' | ForEach-Object{$_.Matches.Groups[1].Value)
Run Code Online (Sandbox Code Playgroud)

或者在没有匹配的情况下采用 Ansgars 方法(并重复标签)

(svn info filename) -replace "(?sm).*?^Last Changed Date: (.*?)$.*","`$1"
Run Code Online (Sandbox Code Playgroud)


Ans*_*ers 7

使用-match-replace 运算符

(svn info filename) -match '^Last Changed Date:' -replace '^Last Changed Date: '
Run Code Online (Sandbox Code Playgroud)

  • @ script0207请不要移动目标。如果您有新问题或后续问题:请发布新问题。 (3认同)