※当サイトは、アフィリエイト広告を利用しPRを含みます。

技術系

Powershellのsplitでタブ区切りと列区切りにする方法

この記事は、powershellのsplit関数でtab区切りにする方法をお伝えします。

※csvのインポート時にタブ区切りする方法ではありません。

 

Powershell+split+tabのコード

$array = "AAA   BBB      CCC DDD           EEE"
$array = $array.split("`t")

あえて“CCC△DDD”(△は半角スペース)としています。

 

split実行結果を見るためのコマンド

for($cnt=0; $cnt -lt $array.Length; $cnt ++){
    Write-Host ('インデックス' + [string]$cnt + 'の要素の値→' + $array[$cnt])
}

 

Split+tab実行結果

インデックス0の要素の値→AAA
インデックス1の要素の値→BBB
インデックス2の要素の値→CCC DDD
インデックス3の要素の値→EEE

結果からわかるように、タブとスペースを判別しています。

区切り文字を変えれば応用が可能です。

 

ファイルをタブ区切りで列をSplitする

ファイルをインポートせず、直接Splitする方法です。

まずはタブ区切りにするコードから。

cat test.csv | %{ $_.Split("`t")[2] }

cat はGet-Contentのエイリアスが設定されてます。

パイプで区切り、$_ で結果を取得、2カラム目をsplitしています。

 

ファイルへの書き出し

ファイルをタブ区切りで分割し、必要な個所だけ書き出す方法です。

一旦変数に格納し、それをエクスポートしてます。(本当はワンライナーで書きたい)

$arr = cat test.csv | %{ $_.Split("`t")[2] }
Write-Output $arr | Out-File Split_test.txt

 

 

著作権について

著作権は当サイトの管理者に帰属します。

商用利用以外であれば著作権フリーですが、念のためコメントにてお知らせください。


社畜系インフラエンジニアブログのTOPへ戻る

コメントもらえたら泣いて喜びます!
  • この記事を書いた人
  • 最新記事
生き残りたいインフラエンジニアのカナデ

kanade

IT関連の仕事に従事し気付けば20余年。好きな言葉は「よくわからないけど動いてる」です。どうにかして生き残りたいアラフォーのIT系エンジニア。

-技術系
-