PowerShellを使ってファイルの内容を確認する際に便利なのが Get-Content コマンドです。
テキストファイルやログファイルの内容を簡単に取得できるだけでなく、特定の行を抜き出したり、リアルタイムで変更を監視したりと、さまざまな用途に活用できます。
本記事では Get-Content コマンドの基本的な使い方 から 便利なオプション、さらには 応用テクニック まで詳しく解説します。
PowerShellを活用した効率的なファイル操作をマスターしましょう。
Get-Content はPowerShellのコマンドレットの1つで、テキストファイルやログファイルの内容を取得するために使用されます。
このコマンドを使うことで、ファイルの中身を行単位で取得でき、他のコマンドと組み合わせて便利に活用できます。
Get-Content <ファイルパス>
例えば、C:\test\sample.txt
の内容を取得する場合、以下のように実行します。
Get-Content C:\test\sample.txt
これにより、sample.txt
の内容がPowerShellの出力として表示されます。
最も基本的な使い方は、ファイルの内容をそのまま出力することです。
Get-Content C:\test\log.txt
このコマンドを実行すると、log.txt
の内容がそのままコンソールに表示されます。
ファイルの各行に行番号を付けて表示したい場合は、Select-Object
コマンドと組み合わせます。
Get-Content C:\test\log.txt | Select-Object -Index
または、手動で行番号を追加する場合は以下のようにします。
Get-Content C:\test\log.txt | ForEach-Object { "$($_.ReadCount): $_" }
Get-Content C:\test\log.txt | Select-Object -First 10
これは、log.txt
の最初の10行を表示する例です。
Get-Content C:\test\log.txt | Select-Object -Last 5
これは、log.txt
の最後の5行を表示する例です。
ファイルの最初の数行のみ取得したい場合、-TotalCount
オプションを使用します。
Get-Content C:\test\log.txt -TotalCount 5
これは、ファイルの 最初の5行 のみを取得するコマンドです。
-Tail
オプションを使うと、ログファイルの変更をリアルタイムで監視できます。
Get-Content C:\test\log.txt -Wait
このコマンドを実行すると、ファイルの末尾に新しいデータが追加されるたびに表示されます。
特に ログ監視 に便利です。
通常、Get-Content
は行単位で出力しますが、-Raw
オプションを付けると、ファイル全体を1つの文字列として取得できます。
Get-Content C:\test\log.txt -Raw
これは、改行を含めた形で文字列として扱いたい場合 に便利です。
ファイルの中から特定のキーワードを含む行を抽出するには、Select-String
を使用します。
Get-Content C:\test\log.txt | Select-String "エラー"
これは、ファイル内に 「エラー」 という文字列を含む行を抽出する例です。
取得した内容を新しいファイルに保存したい場合は、Set-Content
または Out-File
を使います。
Get-Content C:\test\log.txt | Out-File C:\test\filtered_log.txt
これにより、log.txt
の内容を filtered_log.txt
に保存できます。
Get-Content
で取得したデータを配列として扱うことで、より高度な操作が可能になります。
$lines = Get-Content C:\test\log.txt
$lines[0] # 最初の行を取得
$lines[-1] # 最後の行を取得
このように、ファイルのデータを配列に格納し、特定の行だけを取得することができます。
Get-Content
は すべての行をメモリに読み込む ため、数百MB以上の大きなファイルでは処理が遅くなることがあります。
大きなファイルを扱う場合は、ストリーミング処理(System.IO.StreamReaderを使用)を検討 すると良いでしょう。
Windowsのテキストファイル(CRLF)とLinuxのテキストファイル(LF)では改行コードが異なります。
改行コードを考慮した処理 を行いたい場合は、-Raw
オプションを活用するのがおすすめです。
PowerShellの Get-Content コマンドは、ファイルの内容を取得するための強力なツールです。
基本的な使い方から、特定の行の取得、リアルタイム監視、データの保存、配列処理まで幅広い用途で活用できます。
主なポイント
Get-Content <ファイルパス>
でファイルの内容を取得-TotalCount
で先頭のn行を取得-Tail -Wait
でリアルタイム監視-Raw
で改行を保持して取得Select-String
で特定の文字列を検索PowerShellを活用し、より効率的なファイル操作を実現しましょう!