使用PowerShell我可以从包含所需文本的文件中获取行:
Get-ChildItem -recurse -Attributes !Directory+!System | Get-Content | Select-String "tshtml"
这给出了以下结果:
templateUrl: '/tshtml/generic/gkeyvalue/gkeyvalue.html'
templateUrl: '/tshtml/generic/permission/permission.html'
templateUrl: '/tshtml/generic/permission2/permission2.html'
但现在我想将其中的一部分作为输出:
/generic/gkeyvalue/gkeyvalue.html
/generic/permission/permission.html
/generic/permission2/permission2.html
我该怎么做?我正在阅读有关正则表达式的内容,但我对它的了解并不多:(
答案 0 :(得分:1)
... | Select-String "tshtml" | ForEach { $_.Line -replace "^.*(?=/generic)|'$" }
替换行前/generic
的行的开头和行尾的'
,什么也没有。
或
Select-String "tshtml" | ForEach { if ($_.Line -match "'/tshtml(.*)'") { $Matches[1] } }
捕捉''
之间的文字并输出。
答案 1 :(得分:0)
尝试以下方法:
... | Select-String "tshtml"|awk '{print $2}'| tr -d "'"