文字列をデリミタ指定してsplitする

1. cut

 $ echo '2016-02-03' | cut -d '-' -f 2
 02
  • 簡単で使いやすい。後述の方法のようにBash配列を使わず、インデックスを指定して直接取り出せるので便利。
  • しかし、遅い。ループで数百回以上繰り返すような場合、時間が掛かりすぎる事が多い。

2. trでデリミタをIFSに変換し、Bash配列に格納する

 $ nums=($(echo '2016-02-03' | tr '-' ' '))
 $ echo ${nums[1]}
 02
  • cutよりは速い。(多分)
  • しかし、後述のパラメーター展開を使った方がより速い。(多分)

トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS