PowerShellのGet-Contentコマンドを徹底解説|使い方から応用テクニックまで

PowerShellを使ってファイルの内容を確認する際に便利なのが Get-Content コマンドです。
テキストファイルやログファイルの内容を簡単に取得できるだけでなく、特定の行を抜き出したり、リアルタイムで変更を監視したりと、さまざまな用途に活用できます。
本記事では Get-Content コマンドの基本的な使い方 から 便利なオプション、さらには 応用テクニック まで詳しく解説します。
PowerShellを活用した効率的なファイル操作をマスターしましょう。

Get-Contentとは?

Get-Content はPowerShellのコマンドレットの1つで、テキストファイルやログファイルの内容を取得するために使用されます。
このコマンドを使うことで、ファイルの中身を行単位で取得でき、他のコマンドと組み合わせて便利に活用できます。

基本構文

Get-Content <ファイルパス>

例えば、C:\test\sample.txt の内容を取得する場合、以下のように実行します。

Get-Content C:\test\sample.txt

これにより、sample.txt の内容がPowerShellの出力として表示されます。


基本的な使い方

1. ファイルの内容を表示する

最も基本的な使い方は、ファイルの内容をそのまま出力することです。

Get-Content C:\test\log.txt

このコマンドを実行すると、log.txt の内容がそのままコンソールに表示されます。

2. 行番号をつけて表示する

ファイルの各行に行番号を付けて表示したい場合は、Select-Object コマンドと組み合わせます。

Get-Content C:\test\log.txt | Select-Object -Index

または、手動で行番号を追加する場合は以下のようにします。

Get-Content C:\test\log.txt | ForEach-Object { "$($_.ReadCount): $_" }

3. 特定の行を取得する

上からn行取得する

Get-Content C:\test\log.txt | Select-Object -First 10

これは、log.txt の最初の10行を表示する例です。

下からn行取得する

Get-Content C:\test\log.txt | Select-Object -Last 5

これは、log.txt の最後の5行を表示する例です。


Get-Contentの便利なオプション

1. -TotalCount(先頭の行のみ取得)

ファイルの最初の数行のみ取得したい場合、-TotalCount オプションを使用します。

Get-Content C:\test\log.txt -TotalCount 5

これは、ファイルの 最初の5行 のみを取得するコマンドです。

2. -Tail(リアルタイムで監視)

-Tail オプションを使うと、ログファイルの変更をリアルタイムで監視できます。

Get-Content C:\test\log.txt -Wait

このコマンドを実行すると、ファイルの末尾に新しいデータが追加されるたびに表示されます。
特に ログ監視 に便利です。

3. -Raw(改行を含めて一括取得)

通常、Get-Content は行単位で出力しますが、-Raw オプションを付けると、ファイル全体を1つの文字列として取得できます。

Get-Content C:\test\log.txt -Raw

これは、改行を含めた形で文字列として扱いたい場合 に便利です。


Get-Contentの応用テクニック

1. ファイルの特定の文字列を検索する

ファイルの中から特定のキーワードを含む行を抽出するには、Select-String を使用します。

Get-Content C:\test\log.txt | Select-String "エラー"

これは、ファイル内に 「エラー」 という文字列を含む行を抽出する例です。

2. 取得した内容を別のファイルに保存する

取得した内容を新しいファイルに保存したい場合は、Set-Content または Out-File を使います。

Get-Content C:\test\log.txt | Out-File C:\test\filtered_log.txt

これにより、log.txt の内容を filtered_log.txt に保存できます。

3. 取得したデータを配列として扱う

Get-Content で取得したデータを配列として扱うことで、より高度な操作が可能になります。

$lines = Get-Content C:\test\log.txt
$lines[0] # 最初の行を取得
$lines[-1] # 最後の行を取得

このように、ファイルのデータを配列に格納し、特定の行だけを取得することができます。


Get-Contentの制限と注意点

1. 大きなファイルの読み取りに注意

Get-Contentすべての行をメモリに読み込む ため、数百MB以上の大きなファイルでは処理が遅くなることがあります。
大きなファイルを扱う場合は、ストリーミング処理(System.IO.StreamReaderを使用)を検討 すると良いでしょう。

2. 改行コードの違いに注意

Windowsのテキストファイル(CRLF)とLinuxのテキストファイル(LF)では改行コードが異なります。
改行コードを考慮した処理 を行いたい場合は、-Raw オプションを活用するのがおすすめです。


まとめ

PowerShellの Get-Content コマンドは、ファイルの内容を取得するための強力なツールです。
基本的な使い方から、特定の行の取得、リアルタイム監視、データの保存、配列処理まで幅広い用途で活用できます。

主なポイント

  • Get-Content <ファイルパス> でファイルの内容を取得
  • -TotalCount で先頭のn行を取得
  • -Tail -Wait でリアルタイム監視
  • -Raw で改行を保持して取得
  • Select-String で特定の文字列を検索

PowerShellを活用し、より効率的なファイル操作を実現しましょう!

タイトルとURLをコピーしました