PowerShell 中的 grep 和 sed 等价物
grep and sed equivalent in PowerShell
我正在尝试在 PowerShell 中执行以下语句
svn info filename | grep '^Last Changed Date:'| sed -e 's/^Last Changed Date: //'
我试过这个:
svn info filename | Select-String '^Last Changed Date:'
我期望低于输出
2018 年 12 月 20 日星期四 4:50:40 上午
使用 -match
和 -replace
operators:
(svn info filename) -match '^Last Changed Date:' -replace '^Last Changed Date: '
要删除前导标签,您可以使用具有 RegEx 模式的捕获组。
svn info filename | Select-String '^Last Changed Date: (.*)$' | ForEach-Object{$_.Matches.Groups[1].Value}
或者在没有匹配的情况下采用 Ansgars 方法(并重复标签)
(svn info filename) -replace "(?sm).*?^Last Changed Date: (.*?)$.*","`"
这可能是在回避问题,但您可以通过从现有 git 安装中导入它们来在 powershell 中使用 sed
和 grep
语句。
如果已安装,C:\Program Files\Git\usr\bin
包含您要查找的相当不错的语句选择,例如 sed.exe
。您可以为它们设置一个别名,并按照您习惯的方式使用它们:
Set-Alias -Name sed -Value C:\"Program Files"\Git\usr\bin\sed.exe
您可以在配置文件中定义这些别名以保留它们。创建一个名为 C:\Users\*UserName*\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1
的文件,并允许在具有管理员权限的 powershell 中执行脚本,方法是调用:
set-executionpolicy remotesigned
我正在尝试在 PowerShell 中执行以下语句
svn info filename | grep '^Last Changed Date:'| sed -e 's/^Last Changed Date: //'
我试过这个:
svn info filename | Select-String '^Last Changed Date:'
我期望低于输出
2018 年 12 月 20 日星期四 4:50:40 上午
使用 -match
和 -replace
operators:
(svn info filename) -match '^Last Changed Date:' -replace '^Last Changed Date: '
要删除前导标签,您可以使用具有 RegEx 模式的捕获组。
svn info filename | Select-String '^Last Changed Date: (.*)$' | ForEach-Object{$_.Matches.Groups[1].Value}
或者在没有匹配的情况下采用 Ansgars 方法(并重复标签)
(svn info filename) -replace "(?sm).*?^Last Changed Date: (.*?)$.*","`"
这可能是在回避问题,但您可以通过从现有 git 安装中导入它们来在 powershell 中使用 sed
和 grep
语句。
如果已安装,C:\Program Files\Git\usr\bin
包含您要查找的相当不错的语句选择,例如 sed.exe
。您可以为它们设置一个别名,并按照您习惯的方式使用它们:
Set-Alias -Name sed -Value C:\"Program Files"\Git\usr\bin\sed.exe
您可以在配置文件中定义这些别名以保留它们。创建一个名为 C:\Users\*UserName*\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1
的文件,并允许在具有管理员权限的 powershell 中执行脚本,方法是调用:
set-executionpolicy remotesigned