・head
Get-Content "<ログファイル名>" | Select-Object -first 100
・tail
Get-Content "<ログファイル名>" | Select-Object -last 100
中間を取り出したい場合は、2通り方法がある。例えば、以下のようなテキストファイル(test.txt)があるとして、3行目~5行目を取り出したい場合のコマンドを考える。
-------例ここから
1 a
2 b
3 c
4 d
5 e
6 f
7 g
-------例ここまで
①firstとlastを組み合わせる
Get-Content "test.txt" | Select-Object -first 5 | Select-Object -last 3
-------結果ここから
3 c4 d
5 e
-------結果ここまで
②skipを使う
Get-Content "test.txt" | Select-Object -skip 2 -first 3※以下のようにオプションの順番を変えても結果は同じ。どうやらskipはfirstよりも先に処理される模様
Get-Content "test.txt" | Select-Object -first 3 -skip 2
-------結果ここから
4 d
5 e
-------結果ここまで
感覚的には①の方法が、実際に抜き出したい行の番号と、オプションの指定が一致するのでわかりやすいと思う。処理的にはおそらくパイプが1回で済む②が速いと思われる(未検証)。
当時のバージョンではどうだったかわからないですが、最近のだと Get-Contentの -TotalCount と -Tail でできますね。中間を取り出す場合はSelect-Objectも併用
返信削除