このエントリーをはてなブックマークに追加


sedコマンドで大文字小文字を区別せずに置換する方法(iを使用する)

sedコマンドで英大文字、英小文字を区別せずに置換する方法を実行例をあげて記します。


関連記事

iを使用することにより英大文字小文字を区別ぜずに置換する

以下の構文のようにすると英大文字、英小文字を区別せずに置換することができます。
一番最後にiが付加されています。
以下の構文では、echoにより出力された文字列をパイプを使いsedで置換する例です。

echo 文字列 | sed -e "s/置換前文字列/置換後の文字列/i"

実際にsedにiを付加して実行してみた

上記の構文を使用しsakura文字列をtubakiに置換した例を記します。

  • 置換前文字列が全て英大文字ですが、echoコマンドにより出力された英小文字のsakuraは置換後の文字列に変換されているのが確認できます。
    $ echo "sakura" | sed -e "s/SAKURA/tsubaki/i"
    tsubaki
  • 上記と同様に置換前文字列を英大文字小文字の混在で指定してあります。
    上記と同様にtusbakiに置換されているのが確認できます。
    $ echo "sakura" | sed -e "s/SaKuRa/tsubaki/i"
    tsubaki

ファイルで試してみる

以下のようなテキストファイルを置換してみます。

  • 実行例用のテキストファイル内容
    $ cat sedtest.txt 
    sakura
    Sakura
    SAkura
    SAKura
    SAKUra
    SAKURa
    SAKURA
  • sedコマンド実行結果
    全てのsakuraがsuzuranに置換されているのが確認できます。
    $ sed -e "s/sakura/suzuran/i" sedtest.txt 
    suzuran
    suzuran
    suzuran
    suzuran
    suzuran
    suzuran
    suzuran

以上、sedコマンドで英大文字、英小文字を区別せずに置換する方法でした。



トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2015-03-20 (金) 22:28:06