bashの変数をsplitして配列を作る方法
bashの変数をsplitして配列を作る方法を紹介します。
1.問題点
bashで次のような変数を作成しました。
#!/bin/bash
foo=a,b,c,d,f,e,g
この変数fooを","でsplit(分割)して配列変数に代入したいのですが、方法がわかりません。
ということで、bashの変数をsplitして配列を作る方法を紹介します。
2.bashの変数をsplitして配列を作る
bashの変数をsplitして配列を作るには、文字列置換を利用します。
#!/bin/bash
foo=a,b,c,d,f,e,g
list=(${foo//,/ })
echo ${list[@]}
echo ${list[1]}
実行結果
a b c d e f g
b
3.文字列置換について
今回利用したbashの文字列置換のフォーマットは、
${変数名/置換前文字列/置換後文字列}
が基本です。
これで、変数の中にマッチする文字があれば1回のみ置換します。
#!/bin/bash
foo=a,b,c,d,f,e,g
list=(${foo/,/ })
echo ${list[@]}
echo ${list[1]}
実行結果
a b,c,d,e,f,g
b,c,d,e,f,g
マッチする文字をすべて置換したい場合は、2項のサンプルのようにスラッシュを2つにして、
${変数名//置換前文字列/置換後文字列}
とします。
"//"はsedの"/g"オプションと同じ意味になります。
Posted by yujiro このページの先頭に戻る
- シェルスクリプトのexpectで応答メッセージを振り分ける方法
- bashでPostgreSQLのselect結果を出力する方法
- bashでbackspaceが動作しない場合の対処
- bashの変数から最後の1文字を取得・削除する方法
- bashのwhile文で利用した変数がループ外で反映されない場合の対処
- bashのechoでアスタリスク「*」がワイルドカードとして展開される場合の対処
- bashの正規表現でスペース(空白)を判定する方法
- bashで文字列の長さを調べる方法
- bashで数値を判定する方法
- bashで小数点を比較する方法
- bashの配列をjoinする方法
- bashのif文で正規表現を使用する方法
- Bashで変数を大文字または小文字に変換する方法
- シェルスクリプトでtelnet接続する方法
- bashで小数点を比較する方法
トラックバックURL
コメントする
greeting