
[英]Using PowerShell sls (Select-String) vs grep vs findstr
[英]Colorize findstr/grep output in PowerShell
我发现了很多问题/答案以及其他类型的帖子,这些帖子谈论使用别名替换,或别名grep for findstr。 虽然这很有用,但我喜欢在许多终端环境中使用grep的一件事是突出显示找到的文本; 经常是红色的。
findstr / A:颜色似乎意味着这应该是可能的,甚至很容易......但我还没有让它在一个简单的声明中工作,如:
set-alias grep "findstr /A:color F0"
有办法做到这一点吗?
谢谢
我很少创建新的别名,所以很可能有其他(更好的)方法,而不是我在上面写的那个,但这种方式似乎有效。
Set-Alias
的帮助部分,参数Value
:
-值
Specifies the name of the cmdlet or command element that is being aliased.
因此,它希望别名命令可以是cmdlet或命令元素。
如果您执行Get-Help Set-Alias -Examples
您将看到最后一个与您希望类似的示例,调用命令并指定一些硬编码参数。 它使用以下代码执行此操作:
PS C:\>function CD32 {set-location c:\windows\system32}
PS C:\>set-alias go cd32
因此,您需要做的是创建一个能够执行您想要的功能的函数,然后为该命令添加别名。 一个例子是:
function Search-Text
{
& c:\Windows\system32\findstr.exe /A:F0 $Args
}
然后你可以将新函数别名为grep
:
Set-Alias grep Search-Text
最后只需称它为:
grep mysearchword file1.txt file2.txt
注意 :当我在普通的PowerShell shell中运行它时,上面的代码对我来说很好(可能因为这实际上是带有一些额外东西的普通命令shell),但是在ISE中没有得到预期的彩色打印(显然ISE处理主机打印方式不同)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.