【Linuxコマンド】sedで文字列を置換する方法

Linuxではファイルに記述されている文字列を、指定した文字列で置換できる「sed」コマンドがあります。ここでは「sed」コマンドの使い方について、以下の内容で解説していきます。

sed_image

この記事で「sed」コマンドで文字列を置換する方法についてわかりやすく解説していますので、ぜひ使い方を覚えておきましょう!

sedコマンドの使い方

「sed」コマンドは指定したファイルの文字列を所定の書式に従って文字列を置換して出力します。文字列を置き換えるには、以下の書式で記述します。

$ sed s/置換対象文字列/置換後文字列/ ファイル名

以下では「appleorangemelon」と記述されている「sample.txt」の文字列を置換しています。

$ sed s/orange/ORANGE/ sample.txt

実行結果:

appleORANGEmelon

文字列が置き換えられて出力されました。また、以下のように「cat」コマンドの後にパイプ「|」で「sed」コマンドを繋げることでも同様の結果を得られます。

$ cat sample.txt | sed s/apple/APPLE/

「sed」コマンドはあくまで文字列を置換して出力するのみで、実際のファイルの内容の書き換えは行いませんので注意しましょう。もし、置換した内容をテキストに保存したい場合はリダイレクト「>」を使用しましょう。

「cat」コマンドについては、以下の記事で詳しく解説しています!

sedコマンドのオプション

sedで使用するオプションは以下となります。

オプション説明
-e指定したスクリプトで置換を行う
-f ファイル指定したファイルに記述されているスクリプトファイルの内容を追加する
-r拡張正規表現を使用する

sedコマンドの便利な使い方

全行を置換する

はじめに紹介した書式では、1つの行に複数の置換対象文字列に一致した文字列が存在した場合でも、最初に一致した文字列のみしか置換されません。

そこで全ての一致した文字列を置換するためには以下のように行います。

$ sed -e s/apple/APPLE/g sample.txt

実行結果:

APPLEorangemelonAPPLE

行頭、行末を置換

行頭のみ、行末のみ置換する場合は以下のように記述します。

$ sed -e "s/^apple/APPLE/" sample.txt
$ sed -e "s/apple$/APPLE/" sample.txt

複数の置換処理を実施

置換対象文字列が複数ある場合はスクリプトを複数指定すればOKです。

$ sed -e "s/apple/APPLE/" -e "s/orange/ORANGE/" sample.txt

行を削除する

指定した行を削除するには「d」を指定します。たとえば、2行目を削除する場合は「2d」とします。

$ sed -e '2d' sample.txt

また、複数行を削除することもできます。以下1〜3行目を削除しています。

$ sed -e '1,3d' sample2.txt

Linuxについてもっと知りたい方へ

そもそもLinuxについて、

実はなんとなくしか理解していない…
Linuxを効率よく学習する方法が知りたい

といった情報を知りたい方は、以下の記事も参考にしてみてくださいね!



まとめ

ここでは、「sed」コマンドで文字列を置換する方法について、

  • sedコマンドとは
  • sedコマンドの使い方
  • sedコマンドのオプション
  • sedコマンドの便利な使い方

などについて解説しました。「sed」コマンドは文字列を置換するときに非常に便利ですので、使い方についてはよく理解しておきましょう。

もし、「sed」コマンドについて忘れてしまったら、この記事を参考にしてくださいね!

「プログラミング、右も左もわからない…」という方にオススメ

cta_under_bnr

当プログラミングスクール「侍エンジニア」では、これまで6000人以上のエンジニアを輩出してきました。

その経験を通してプログラミング学習に成功する人は、「目的目標が明確でそれに合わせた学習プランがあること」「常に相談できる人がそばにいること」「自己解決能力が身につくこと」この3つが根付いている傾向を発見しました。

侍エンジニアは上記3つの成功ポイントを満たすようなサービス設計に磨きをかけております。

cta_under_bnr

「自分のスタイルや目的に合わせて学習を進めたいな」とお考えの方は、ぜひチェックしてみてください。

詳細はこちら

書いた人

侍エンジニアブログ編集部

侍エンジニアは「人生を変えるプログラミング学習」をコンセンプトに、過去多くのフリーランスエンジニアを輩出したプログラミングスクールです。プログラミングに役立つ情報や有用な情報を発信していきます。
サービスページはこちら
ツイッターはこちら
フェイスブックはこちら

おすすめコンテンツ

まずはここから!初心者でも1から学べるプログラミング入門カリキュラム

転職成功で受講料0円!あなたもプログラミングを学んでエンジニアデビュー