linux PowerShell中的grep和sed等效项

vwkv1x7d  于 2022-12-18  发布在  Linux
关注(0)|答案(3)|浏览(277)

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

svn info filename | grep '^Last Changed Date:'| sed -e 's/^Last Changed Date: //'

我已经试过了:

svn info filename | Select-String '^Last Changed Date:'

我预计产量低于

Thursday, December 20, 2018 4:50:40 AM
js4nwp54

js4nwp541#

使用-match-replaceoperators

(svn info filename) -match '^Last Changed Date:' -replace '^Last Changed Date: '
11dmarpk

11dmarpk2#

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

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

或采用Ansgars方法而不匹配(并重复标签)

(svn info filename) -replace "(?sm).*?^Last Changed Date: (.*?)$.*","`$1"
gijlo24d

gijlo24d3#

这可能会回避这个问题,但是你可以直接从现有的git安装中导入sedgrep-语句,在powershell中使用它们。
如果安装了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

相关问题