I love the frozen FOOD.
sedを使ってごにょごにょするとか、そもそもbashを使わずperlにしてしまうとか、置換処理が多い場合はそんなことを考えるわけです。
でも、bashの中でもふつうに変数置換ができるんですってね。
私はshellをあまり書かないので知らないのか、単純に無知なのか(笑)
chikan='this/is/test' echo ${chikan/test/TEST}
ってなことをすると
this/is/TEST
なんて結果が出てきます。
感動ですねー。
/test/TESTとありますが、
/置換対象/置換後文字
っていうルールです。尚、「//置換対象/置換文字」とするとマッチしたすべての文字を置換する模様(一回/は最初にみつけたもののみ)
他にもあるみたいですよ。
たとえば、メールアドレスのアカウント名とドメイン名をわけたり。
mailaddr='test@honyanyara' echo ${mailaddr%@*} echo ${mailaddr#*@}
フルパスのファイル名から、PATHとファイル名を取得してみたり。
filename='/home/honyarara/test.jpg' echo ${filename%/*} echo ${filename##*/}
おもろい。
外部プロセスキックして分割するなんてことせずに済むのってすばらしい。
http://d.hatena.ne.jp/ozuma/20130928/1380380390
Gem-one(ジェムワン) 権蔵
Gem-one代表.システム開発業ブランドGem-one adIT、音楽レッスン事業 Gem-one Music設立。ビリヤード・スケジュールサイト すけどんも絶賛運用中。
■ブログ
ちょろっとお時間頂戴