Linuxでプログラミングしていると、よく文字列置換を行いたい時ってありますよね。
文字列置換の方法がわからない時は、1文字1文字変換していましたが、『sed』コマンドを使えば簡単に文字列置換ができます。
今日はそんな『sed』コマンドの使い方を説明させて頂きます。
もしもアフィリエイトは会員登録後も無料です!
今すぐ会員登録してアフィリエイトを始めよう!
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』コマンドはさまざまな場面で利用ができると思いますので、是非利用してみてください。
今日はさくっと以上になります。
ちなみに、WordpressもLinuxも利用できるレンタルサーバーはエックスサーバーがオススメです。