linux cpu占用率如何看
264
2022-09-26
powershell_特殊变量:$_ /ls 目录内文件列表排序显示 / where vs sls(select-string) vs grep/表达式中的模糊字符(通配字符串)
文章目录
reference
automatic variables referencespecial variable:`$_.`引用ls 的结果ls内容排序显示
where
获取属性的完整值表达式中的模糊字符(通配字符串)
使用-like参数自带筛选器的cmdlet
select-string
多目录多文件中搜索在管道符中使用sls
grep
reference
link
automatic variables reference
about Automatic Variables - PowerShell | Microsoft Docs
special variable:$_.
reference link
Get-Process | ForEach-Object {$_.ProcessName}
引用ls 的结果
ls内容排序显示
例如按访问时间
ls * | sort {$_.LastaccessTime}
where
where & $_
$_经常使用在管道符中,作为前一个变量的输出对象来作为下一个命令的输入(您可以从中提取需要的属性完成一定的逻辑) 譬如,在作为筛选工具对象的where-object的值表达式中经常会用的$_
Get-Process | Where-Object {$_.ProcessName -eq ‘dllhost’}
为了提取合适的字段,您或许需要利用其他cmdlet(format-list(简写为fl)/get-member(gm)来获取准确的字段.
获取属性的完整值
format-table(ft)可以获取变量的简写值format-list(fl)可以获取变量的完整值
select 也可以获取指定变量的完整的值
表达式中的模糊字符(通配字符串)
使用-like参数
about Wildcards - PowerShell | Microsoft Docs 这可以让where命令更加好用
自带筛选器的cmdlet
某些cmdlet自带筛选器,自带筛器一般具有更好的性能
SYNOPSIS Selects objects from a collection based on their property values. --------------- Example 1: Get stopped services --------------- Get-Service | Where-Object {$_.Status -eq "Stopped"} Get-Service | where Status -eq "Stopped" -------- Example 2: Get processes based on working set -------- Get-Process | Where-Object {$_.WorkingSet -GT 250MB} Get-Process | Where-Object WorkingSet -GT (250MB) -------- Example 3: Get processes based on process name -------- Get-Process | Where-Object {$_.ProcessName -Match "^p.*"} Get-Process | Where-Object ProcessName -Match "^p.*"
除了$_可以帮助用来构建脚本块表达式来辅助where 执行筛选 还有select-string这个十分有用的cmdlet
select-string
缩写别名为sls
Select-String (Microsoft.PowerShell.Utility) - PowerShell | Microsoft Docs
reference link2 实例代码:
生成演示素材文件:`Alias.txt` /`Command.txt`Get-Alias | Out-File -FilePath .\Alias.txtGet-Command | Out-File -FilePath .\Command.txt# 利用sls进行多文件同时查找Select-String -Path .\*.txt -Pattern 'File'
处理从文件中刷选满足条件的行,也可以通过管道符来使用sls sls相比于where更加灵活,也更加强大
多目录多文件中搜索
在管道符中使用sls
某种程度上进一步实现了grep的一些效果.
grep
grep是基于文本流的筛选工具 只需要考虑文本正则表达式的编写即可使用 但是在某些时候grep很管用(很方便) 在powershell中,可以通过安装第三方工具实现grep(当然用法于Linux上的有所区别 (可以通过scoop搜索相关工具并安装)
PS C:\Users\cxxu_11> scoop search grep'main' bucket: busybox (4487-gd239d2d52) --> includes 'egrep' gettext (0.21-v1.16) --> includes 'msggrep.exe' gow (0.8.0) --> includes 'egrep.exe' grep (2.5.4) nim (1.6.0) --> includes 'nimgrep.exe' pcregrep (10.20) ripgrep (13.0.0) rktools2k3 (1.0) --> includes 'qgrep.exe' ugrep (3.3.8) unxutils (2007.03.01) --> includes 'agrep.exe'
例如,可以安装第一个工具箱,内部就包含有grep工具
PS C:\Users\cxxu_11> printenv | grep apps -iCPwindowsApps=C:\Program Files\windowsAppsoneNote10Home=C:\Program Files\windowsApps\Microsoft.Office.OneNote_16001.14326.20458.0_x64__8wekyb3d8bbwePath=D:\Program Files\PowerShell\7;C:\Program Files\WindowsApps\Microsoft.WindowsTerminal_1.9.1942.0_x64__8wekyb3d8bbwe;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~