Rainbow Engine

IT技術を分かりやすく簡潔にまとめることによる学習の効率化、また日常の気付きを記録に残すことを目指します。

Powershell

Powershellで文字列をタブ区切りで分割~splitオペレータの活用~

投稿日:2020年11月30日 更新日:

<目次>

(1) Powershellで文字列をタブ区切りで分割~splitオペレータの活用~
 (1-1) 構文
 (1-2) サンプルプログラム
   (サンプルプログラム#1)ベーシックな「-split」の例
   (サンプルプログラム#2)分割結果は配列に自動格納される
   (サンプルプログラム#3)分割個数の指定も可能

(1) Powershellで文字列をタブ区切りで分割~splitオペレータの活用~

(1-1) 構文

(構文)

$[Array] = $[Array] -split "\t"

まず[Array]には配列の名前が入ります。自身に対して「-split」オペレータ(=値操作のためのPowershell機能)の引数で指定した「区切り文字」で区切って配列に格納してくれます。

参考までに、Powershellにおける配列を作るには以下のような方法があります。
①変数に「複数の値」をカンマ区切りで与える(値1つの値の場合も「,[値]」で記述可能)
②変数に「@()」を代入して空の配列を初期化

目次にもどる

(1-2) サンプルプログラム

Powershellでタブ区切りの文字列を分割するためのサンプルプログラムをいくつかご紹介します。

(サンプルプログラム#1)ベーシックな「-split」の例
タブ区切りでテニス選手(BIG4)の名前を記載した文字列「$arr」に対して「$arr = $arr -split “\t”」で$arrをタブ(\t)で区切るように指示しています。

$arr = 'RogerFeder	RafaelNadal	NovakDjokovic	AndyMurray'
echo "[#### Before ####]" $arr

#「-split」で分割をします。区切り文字は引数の「\t」(タブ区切り)です
$arr = $arr -split "\t"

echo "[#### After ####]" $arr

 

(実行結果)
splitで区切られた結果、4つの文字列の配列に分解されました。

[#### Before ####]
RogerFeder      RafaelNadal     NovakDjokovic   AndyMurray
[#### After ####]
RogerFeder
RafaelNadal
NovakDjokovic
AndyMurray

(図131)

(サンプルプログラム#2)分割結果は配列に自動格納される
分割した結果は配列として格納されているため「[配列名].length」で要素数を取得してforループで各要素にアクセスさせる事もできます。結果的には(サンプルプログラム#1)と同じ結果になります。

$arr = 'RogerFeder	RafaelNadal	NovakDjokovic	AndyMurray'
echo "[#### Before ####]" $arr

$arr = $arr -split "\t"

echo "[#### After2 ####]" 
for ($i=0;$i -lt $arr.length; $i++) {
	echo $arr[$i]
}

 

(実行結果)

[#### Before ####]
RogerFeder      RafaelNadal     NovakDjokovic   AndyMurray
[#### After2 ####]
RogerFeder
RafaelNadal
NovakDjokovic
AndyMurray

(図132)

(サンプルプログラム#3)分割個数の指定も可能
「-split [区切り文字] , [分割個数]」と指定する事で、区切り文字で区切った結果作られる「要素数」を任意の数字で指定できます。
例えば次の例では「-split \t , 3」としているため、3つの文字列に分解されます。そうなると、後半のNovakDjokovicとAndyMurrayは分割されずに繋がったままになります。

$arr = 'RogerFeder	RafaelNadal	NovakDjokovic	AndyMurray'
echo "[#### Before ####]" $arr
$arr = $arr -split "\t", 3
echo "[#### After2 ####]" 
for ($i=0;$i -lt $arr.length; $i++) {
	echo $arr[$i]
}

(実行結果)

[#### Before ####]
RogerFeder      RafaelNadal     NovakDjokovic   AndyMurray
[#### After2 ####]
RogerFeder
RafaelNadal
NovakDjokovic   AndyMurray

(図133)

目次にもどる

Adsense審査用広告コード


Adsense審査用広告コード


-Powershell

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

関連記事

Powershellで親フォルダのパスを取得する方法+Split-Pathコマンドレットのオプションも併せてご紹介

<目次> (1) Powershellで親フォルダのパスを取得する方法  (1-1) 構文と使用例  (1-2) ご参考:Split-Pathのオプション (2) Powershellでフォルダ配下の …

バッチから引数を与えてPowershellを実行する方法

<目次> (1) バッチからPowershellを実行する方法  (1-1) 構文①  (1-2) 構文② (2) バッチから引数を与えてPowershellを実行する方法  (2-1) 引数を表現す …

Powershellで文字列がnullかどうか判定する方法

<目次> (1) Powershellで文字列がnullかどうか判定する方法  (1-1) 構文  (1-2) 構文使用例  (1-3) サンプルプログラム (1) Powershellで文字列がnu …

「このシステムではスクリプトの実行が無効になっているため、ファイルXXXを読み込みことができません」エラー(PowerShell)が出る原因と対処方法

<目次> (1) 「このシステムではスクリプトの実行が無効になっているため、ファイルXXXを読み込みことができません」エラー(PowerShell)が出る原因と対処方法  (1-1) エラーメッセージ …

Powershellで実行中のファイル名を取得する方法

<目次> (1) Powershellで実行中のファイル名を取得する方法  (1-1) 構文①  (1-2) 構文①サンプルプログラム  (1-3) 構文②  (1-4) 構文②サンプルプログラム ( …

  • English (United States)
  • 日本語
Top