我需要在文件中搜索一个术语,并在搜索结果中显示一个索引,以便于引用。
bash中的命令为:
cat <file> | grep 'Table: ' | cat -n
到目前为止,我在Powershell中拥有什么:
Get-Content <file> | Select-String 'Table: ' | Select-Object -Property LineNumber, Line
不幸的是,我没有意识到这LineNumber
给出了文件中的实际行,而不是结果列表中的索引。
如何将bash命令转换为其等效的Powershell?
实际上,.Line
输出对象的属性bySelect-Object
指示给定输入文件中每个匹配项的行号。
PowerShell没有直接等价的功能cat -n
(1
在输出的所有输入行之前都添加一个基于-base的索引),但是使用ForEach-Object
cmdlet自己滚动它并不难:
$i = 0
Get-Content file.txt | Select-String 'Table: ' | ForEach-Object {
"{0,6}`t{1}" -f ++$i, $_.Line
}
上述用途-f
中,格式操作,向左-空间-垫6个字符(,6
)第一RHS操作数({0}
),它是(递增)索引,++$i
,后跟一个制表符(`t
)和第二RHS操作数({1}
),这是手头的输入线($_.Line
)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句