「駑馬十駕」を信念に IT系情報を中心に調べた事をコツコツ綴っています。

テキストファイルを処理して「特定の行だけ抜き出したい」という場面は、ログ解析やデータ処理を行う際によくあります。PowerShellを使えば、シンプルなコマンドで効率的に抽出可能です。本記事では、PowerShellによる代表的な方法を解説します。


基本的な考え方

PowerShellでは、Get-Content コマンドレットでテキストファイルを1行ずつ取得できます。そこから条件を指定して、欲しい行をフィルタリングすれば目的の行を抽出できます。


方法1:行番号で抽出する

特定の行番号を指定して抽出するには配列インデックスを利用します。PowerShellは0から数えるので注意しましょう。

# 3行目(インデックス2)を取得
(Get-Content "sample.txt")[2]

複数行をまとめて取得することも可能です。

# 1行目と5行目を取得
(Get-Content "sample.txt")[0,4]

方法2:条件で抽出する(文字列検索)

キーワードを含む行だけを抽出するには Select-String を使います。

# "Error" を含む行を抽出
Select-String -Path "sample.txt" -Pattern "Error"

この場合、ヒットした行番号と内容が出力されます。内容だけ欲しい場合は以下のように書けます。

# 行の内容だけ表示
Select-String -Path "sample.txt" -Pattern "Error" | ForEach-Object { $_.Line }
 

方法3:正規表現で抽出する

複雑な条件にマッチさせたい場合は正規表現を活用できます。

# 数字で始まる行を抽出
Select-String -Path "sample.txt" -Pattern "^\d+" | ForEach-Object { $_.Line }

方法4:範囲指定で抽出する

特定の行範囲を取り出したい場合は Select-Object を利用します。

# 1〜10行目を抽出
Get-Content "sample.txt" | Select-Object -First 10

# 5〜10行目を抽出
Get-Content "sample.txt" | Select-Object -Index 4..9

まとめ

  • 行番号で取得 → 配列インデックス

  • キーワードで取得Select-String

  • 複雑条件 → 正規表現

  • 範囲指定Select-Object

PowerShellを使えば、テキストファイルの解析や必要な行だけの抽出を簡単に自動化できます。ログファイル処理やデータ前処理など、日々の作業効率化にぜひ活用してみてください。

Ads by Google

0 0
Article Rating
申し込む
注目する
guest
0 コメント一覧
最も古い
最新 高評価
インラインフィードバック
すべてのコメントを見る
0
あなたの考えが大好きです、コメントしてください。x