シェルスクリプトでsubstrみたいなこと

シェルスクリプトを自発的に書くことはあまりありませんが、既存のシェルスクリプトをメンテする事はよくあります。

普段あまり書かないだけに「あ・・あれシェルだとどうやるんだったっけ(また忘れた・・)」みたいなことになりがちです。そのうちのひとつが「substrみたいなことってどうやるんだっけ?」とかそういうごく基本的な事だったりして。

毎回、調べたあとで「ああー、そうだった、そうだった!」というのを繰り返している自分がとても悔しいです。

#!/bin/sh
str="1234567890"
result=`echo $str | cut -c 3-7`
echo $result

実行結果

34567

追記(2009/07/15):

コメントで教えていただいたやり方です。こちらの方がsubstrっぽいですね。

str="1234567890"
echo ${str:2:5}

そのまま転載というのもということで少しだけ調べたところ、上記の書き方はsh、bashではいけますが、kshシンタックスエラーになるようですね。(確認した環境はCentOS4.5です)