当我想从powershell中的输出中选择特定文本时,我可以使用
select-string -Pattern "whatever:"
它会打印出任何列。但是当我在这个输出上尝试相同的东西时,它会打印出行而不是列。
所以我喜欢这个:
> /c0 show | select-string -Pattern "EID:Slt"
而不是显示列,它显示了这一点:
> EID:Slt DID State DG Size Intf Med SED PI SeSz Model
> Sp
我能解决的唯一方法就是用空格替换所有字符,但这样做有点麻烦,其他人可以帮忙输入一下吗?
我如何尝试让它显示输出文本:32:1,32:2,32:3,[...]
Controller = 0 Status = Success Description = Show Drive Information Succeeded. Drive Information : ================= -------------------------------------------------------------------------- EID:Slt DID State DG Size Intf Med SED PI SeSz Model Sp -------------------------------------------------------------------------- 32:0 0 Onln 0 3.637 TB SATA HDD N N 512B ST4000NM0033-9ZM170 U 32:1 1 Onln 1 3.637 TB SATA HDD N N 512B ST4000NM0033-9ZM170 U 32:2 2 Onln 1 3.637 TB SATA HDD N N 512B ST4000NM0033-9ZM170 U 32:3 3 Onln 1 3.637 TB SATA HDD N N 512B ST4000NM0033-9ZM170 U 32:4 4 Onln 1 3.637 TB SATA HDD N N 512B ST4000NM0033-9ZM170 U 32:5 5 Onln 1 3.637 TB SATA HDD N N 512B ST4000NM0033-9ZM170 U 32:6 6 Onln 1 3.637 TB SATA HDD N N 512B ST4000NM0033-9ZM170 U 32:7 7 Onln 1 3.637 TB SATA HDD N N 512B ST4000NM0033-9ZM170 U --------------------------------------------------------------------------
答案 0 :(得分:1)
您是否只是匹配所需列中的数据模式?第一列似乎总是在行的开头,有两个数字后跟冒号和一个数字。你可以用它来提取它们:
Select-String -Pattern "^\d{2}:\d" -AllMatches | % { $_.Matches.Value }
要从整个表格中获取标题行中包含属性名称的数据,您最好将它们解析为固定长度字段。但如果您只需要一列,上述内容应该足够了。