確認したPowerShell:Windows PowerShell ISE Host 5.1
curl -> Invoke-WebRequest
HTTPのGETの結果をファイルに出力する。
Invoke-WebRequest -Uri <URI> -OutFile <OutPut File>
実行例:
PS D:\work> Invoke-WebRequest -Uri https://www.yahoo.co.jp -OutFile yahoo.txt
ls、find -> Get-ChildItem
指定したディレクトリのファイルの一覧を取得する
Get-ChildItem -Path <Path>
実行例:
PS D:\work> Get-ChildItem -Path C:\HashiCorp
ディレクトリ: C:\HashiCorp
Mode LastWriteTime Length Name
--- ------------- ------ ----
da---- 2017/11/26 0:15 Vagrant
ファイルの名前だけ取り出す
Get-ChildItem -Path <Path> -Name
実行例:
PS D:\work> Get-ChildItem -Path C:\HashiCorp -Name
Vagrant
ファイルの検索(find)
PS D:\work> Get-ChildItem -Recurse -Path D:\ -include *yahoo*
ディレクトリ: D:\work
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 2019/10/26 14:37 21696 yahoo.txt
cat、head、tail -> Get-Content
ファイルの中身をみる(cat)
Get-Content -Path <Path>
実行例:
PS D:\work> Get-Content -Path .\test.text
test
ファイルの最初のx行をみる(head)
Get-Content -Path <Path> -TotalCount <Number>
実行例:
PS D:\work> Get-Content -Path .\LineNumbers.txt -TotalCount 5
This is line 1.
This is line 2.
This is line 3.
This is line 4.
This is line 5.
ファイルの最後のx行をみる(tail)
Get-Content -Path <Path> -tail <Number>
実行例:
PS D:\work> Get-Content -Path .\LineNumbers.txt -tail 5
This is line 96.
This is line 97.
This is line 98.
This is line 99.
This is line 100.
ファイルの監視(tail -f) をする
ファイルを開いたままにし、末尾に更新されたら表示する。CTRL+Cで閉じる。
Get-Content -Path <Path> -Wait -tail <Number>
実行例:あとで104行目を追加
PS D:\work> Get-Content .\LineNumbers.txt -Wait -Tail 1
This is line 103.
This is line 104.
ファイルのx行目~y行目をみる
(Get-Content -Path <Path>)[x-1..y-1]
実行例:10行目から20行目を見る
PS D:\work> (Get-Content -Path .\LineNumbers.txt)[9..19]
This is line 10.
This is line 11.
This is line 12.
This is line 13.
This is line 14.
This is line 15.
This is line 16.
This is line 17.
This is line 18.
This is line 19.
This is line 20.
ファイルのx行目をみる
(Get-Content -Path <Path> -TotalCount x)[-1]
実行例:20行目をみる
PS D:\work> (Get-Content -Path .\LineNumbers.txt -TotalCount 20)[-1]
This is line 20.
wc -l -> Get-Content
ファイルの行数をみる
(Get-Content -Path <Path>).Length
実行例:
PS D:\work> (Get-Content -Path .\LineNumbers.txt).Length
104
sort -> Sort-Object
昇順/降順で並び替える
Sort-Object -Property <項目>
Sort-Object -Property <項目> -Descending
実行例:昇順
PS D:\work> Get-ChildItem -Path D:\Vagrant\ol121dg\database\stage\*.xml -FIle |Sort-Object -Property Length
実行例:降順
PS D:\work> Get-ChildItem -Path D:\Vagrant\ol121dg\database\stage\*.xml -FIle |Sort-Object -Property Length -Descending
実行例:CPU使用しているプロセスの上位10件を表示
PS D:\work> get-process | Sort-Object -Property CPU -Descending| Select-Object -first 5 | Format-Table -AutoSize
Handles NPM(K) PM(K) WS(K) CPU(s) Id SI ProcessName
------- ------ ----- ----- ------ -- -- -----------
638 65 182308 178116 13,120.11 10884 1 Amazon Music
340 35 65688 70484 448.95 12192 1 chrome
360 41 86680 105996 430.75 11444 1 chrome
359 38 70972 71644 424.66 11956 1 chrome
1351 61 102576 115080 392.34 10500 1 Amazon Music
一意な一覧を取り出す(uniq)
Sort-Object -Property <項目> -Unique
実行例:一意なプロセス名を取り出す
PS D:\work> get-process | Sort-Object -Property ProcessName -Unique | select-object ProcessName
ProcessName
-----------
Amazon Music
Amazon Music Helper
AppleMobileDeviceProcess
ApplicationFrameHost
<以下略>
または、Get-Unique
を使用する。
PS D:\work> Get-Process | Sort-Object | Select-Object processname | Get-Unique -AsString
grep -> Select-String
ファイルから文字列を検索し表示する
Select-String -Path <パス> -Pattern '文字列'
実行例:ファイルからweatherを含む行を表示する
PS D:\work> Select-String -Path .\yahoo.txt -Pattern 'weather'
yahoo.txt:132:<td valign="top"><a href="https://weather.yahoo.co.jp/weather/">天気・災害</a></td>
history ->Get-History
過去に実行したコマンドを確認する
Get-History
実行例:直近3つのコマンドを確認する
PS D:\work> Get-History -count 3 | format-table -AutoSize
Id CommandLine
-- -----------
169 alias
170 Get-History
171 Get-History -count 3
実行例:コマンドを実行したステータスを確認する
PS D:\work> Get-History -count 3 | format-list
Id : 170
CommandLine : Get-History
ExecutionStatus : Completed
StartExecutionTime : 2019/10/27 13:12:31
EndExecutionTime : 2019/10/27 13:12:31
Id : 171
CommandLine : Get-History -count 3
ExecutionStatus : Completed
StartExecutionTime : 2019/10/27 13:13:59
EndExecutionTime : 2019/10/27 13:13:59
Id : 172
CommandLine : Get-History -count 3 | format-table -AutoSize
ExecutionStatus : Completed
StartExecutionTime : 2019/10/27 13:14:23
EndExecutionTime : 2019/10/27 13:14:23
diff -> Compare-Object
ファイルの文字列を比較する
Compare-Object (Get-Content ファイル名1) (Get-Content ファイル名2)
実行例:aaa.txtとbbb.txtの差分を確認する
PS D:\work> Compare-Object (Get-Content .\aaa.txt) (Get-Content .\bbb.txt)
InputObject SideIndicator
----------- -------------
xxx =>
ccc <=
PS D:\work> Compare-Object (Get-Content .\aaa.txt) (Get-Content .\bbb.txt) -IncludeEqual
InputObject SideIndicator
----------- -------------
aaa ==
bbb ==
ddd ==
eee ==
xxx =>
ccc <=