Linuxで文字列置換と言えばsedコマンド【初心者エンジニアは必ず覚えよう】

Linuxで文字列置換と言えばsedコマンド【初心者エンジニアは必ず覚えよう】プログラミング
Linuxで文字列置換と言えばsedコマンド【初心者エンジニアは必ず覚えよう】

Linuxでプログラミングしていると、よく文字列置換を行いたい時ってありますよね。

文字列置換の方法がわからない時は、1文字1文字変換していましたが、『sed』コマンドを使えば簡単に文字列置換ができます。

今日はそんな『sed』コマンドの使い方を説明させて頂きます。

このブログは現役のエンジニア(プログラマー歴が約12年)の僕(よしたか)が2019年12月後半から日々更新しております。

もしもアフィリエイトは会員登録後も無料です!
今すぐ会員登録してアフィリエイトを始めよう!

Linuxで文字列置換を行う方法

では文字列置換を行う方法を見ていきたいと思います。

sedコマンド

この記事で紹介するのは『sed』コマンドです。

まずは基本的な簡単な使い方ですが、『test.txt』ファイルに『testdesu』という文字列があった場合、

sed -i -e 's/test/111/g' text.txt

このようにすると『test.txt』ファイルの文字列が『111desu』となります。

『-e』オプションをつけると対象文字列の置換(testが111へ置換)となり、『-e』オプションをつけないと対象文字列の行が置換(testが含まれる行そのものが置換)されます。

『-i』オプションをつけるとファイル上書きされるので、僕はよくこのオプションを使っていますが、

sed -e 's/test/111/g' text.txt

こうすると、結果がそのまま出力され、

sed -e 's/test/111/g' text.txt > test2.txt

こうすると、結果が『test2.txt』に出力されます。

sedコマンドの使い方の例

『sed』コマンドの実際の使い方をいくつか見ていきましょう。ここでは僕の経験上、実際の業務上でよく使うものだけ紹介させて頂きます。

特定の文字列置換

sed -i -e 's/test/111/g' test.txt

最初に紹介した通常の文字列置換となります。

特定の文字列のxx番目のみ置換

sed -i -e 's/test/111/2' test.txt

このようにすると、2番目に出現される『test』文字列のみ置換されます。

特定の文字列を大文字小文字関係なく置換

sed -i -e 's/test/111/gi' test.txt

このようにすると、『test』も『TEST』も『TesT』も『111』へ置換されます。

特定の文字列で始まる行の置換

sed -i '/^#/test/' test.txt

このようにすると、『#』で始まる行が『test』と置換されます。

特定の文字列で始まる行の削除

sed -i '/^#/d' test.txt

このようにすると、『#』で始まる行が削除されます。

空行を削除

sed -i '/^$/d'

1〜10行目を削除

sed -i '1,10d' test.txt

まとめ

この記事のおさらい
  • Linuxで文字列置換はsedコマンドが便利

いかがだったでしょうか。

Linuxの『sed』コマンドはさまざまな場面で利用ができると思いますので、是非利用してみてください。

今日はさくっと以上になります。

 

ちなみに、WordpressもLinuxも利用できるレンタルサーバーはエックスサーバーがオススメです。