見出し画像

PowerShellでgrep、head、tail、wc -l

Windowsで面倒くさい作業だなと思っていたら、そういえばLinuxではコマンドラインでやってたっけ…と思い、Windowsでのやり方を調べました。

💻grepっぽい事をする select-string

🌟MicrosoftDocs

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

🌟MicrosoftDocs

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


この記事が気に入ったらサポートをしてみませんか?