【linux】シェル上(bash)でコマンドを使わず文字列を置換する | 瀬戸内の雲のように

【linux】シェル上(bash)でコマンドを使わず文字列を置換する

Posted: 2019-02-14


スポンサーリンク

目次

  • はじめに
  • 環境
  • やりたいこと
  • やり方
  • 解説

    はじめに

    私はサーバサイドのインフラエンジニアですので、シェルスクリプトを書く時がたくさんあります。

    私はプログラミングが結構好きなので苦にはならないのですが、だんだん同じ作業をやっていると、「これもっと短く書けるんじゃないか?」とか思うようになるわけです。

    (超余談ですが、某公道レース漫画で86に乗ってた某豆腐屋の息子も同じように毎日の配達に飽きて色々と自分ルールを課すうちに段々と走りがうまくなったそうな。それと同じ気持ちです。)

    と言うことで、色々調べるうちに 今までコマンドを使っていたことが、実はシェル(bash)だけでできる と言うことがわかりました。

    今回はそんなtipsの中から一つご紹介します。

     

    環境

    最近のlinux環境なら多分動きます

     

    やりたいこと

    sedやawkを使わず文字列を置換します。

    つまり、

    $ echo 'aaabbb' | sed 's/aaa/AAA/'
    AAAbbb
    

    ↑をsedを使わずに実現する、と言うことです。

     

    やり方

    変数展開のオプションを使えば簡単に実現できます。

    まず以下のように変数 ${var} に文字列を格納します。

    $ var='aaabbb'
    
    $ echo ${var}
    aaabbb
    

    この状態で、以下のコマンドを実行します。

    $ echo "${var/aaa/AAA}"
    

    結果は以下のようになるはずです。

    AAAbbb
    

    如何でしょうか。先ほどのsedコマンドと同じ結果が、先ほどよりも短い記述で実現できました。

     

    解説

    あまり解説するほどでもないですが、以下のようにすれば文字列の置換ができます。

    ${変数名/置換元/置換後}
    

    いちいちsedやawkを使うよりも早いですし、記述も短くなります。
    以上、linuxのtipsでした。


    スポンサーリンク




    コメント一覧


    コメントを投稿する


    お名前


    コメント内容





    TOP back