この記事は、powershellのsplit関数でtab区切りにする方法をお伝えします。
※csvのインポート時にタブ区切りする方法ではありません。
Powershell+split+tabのコード
1 2 |
$array = "AAA BBB CCC DDD EEE" $array = $array.split("`t") |
あえて“CCC△DDD”(△は半角スペース)としています。
split実行結果を見るためのコマンド
1 2 3 |
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する方法です。
まずはタブ区切りにするコードから。
1 |
cat test.csv | %{ $_.Split("`t")[2] } |
cat はGet-Contentのエイリアスが設定されてます。
パイプで区切り、$_ で結果を取得、2カラム目をsplitしています。
ファイルへの書き出し
ファイルをタブ区切りで分割し、必要な個所だけ書き出す方法です。
一旦変数に格納し、それをエクスポートしてます。(本当はワンライナーで書きたい)
1 2 |
$arr = cat test.csv | %{ $_.Split("`t")[2] } Write-Output $arr | Out-File Split_test.txt |
著作権について
著作権は当サイトの管理者に帰属します。
商用利用以外であれば著作権フリーですが、念のためコメントにてお知らせください。