PowerShellでgrep、head、tail、wc -l
Windowsで面倒くさい作業だなと思っていたら、そういえばLinuxではコマンドラインでやってたっけ…と思い、Windowsでのやり方を調べました。
💻grepっぽい事をする select-string
grep:テキストファイルの中身で該当する行だけ抽出するコマンド。
・ファイル名有りのパターン(標準的な使い方)
PS> Select-String -Path *.log reply
logfile.log:87:2021/01/01 00:00:43 DHCPC RCV: Reply message on eth1 from xxxxxxxxxxxxxxxxxxxxx
・ファイル名なしのパターン
get-contentして中身だけgrepするイメージ。
PS> Get-Content *.log | Select-String reply
2021/01/01 00:00:43 DHCPC RCV: Reply message on eth1 from xxxxxxxxxxxxxxxxxxxxx
・正規表現を使う
🌟PowerShellで使用する正規表現(MicrosoftDocs)
💻head、tail
head:ファイルの先頭n行を抽出するコマンド。
tail:ファイルの末尾n行を抽出するコマンド。
ファイルを標準出力に表示するGet-Contentのオプションを使用する。
・head
PS> Get-Content <file name> -first 3 #ファイルの先頭3行だけ表示
・tail
PS> Get-Content <file name> -last 3 #ファイルの末尾3行だけ表示
💻wc -l
wc:英単語の数を数えるコマンド。-lオプション(line)で行数を数える。
PowerShellのコマンドはオブジェクトを扱うので、上記grepもどきやhead、tailもどきのコマンドをカッコで括って.countを付けると行数が分かる。
配列の要素数も同じように数えるらしい。
(<command>).count
この記事が気に入ったらサポートをしてみませんか?