はじめに
個人的に sed で最もよく使われる内部コマンドは s コマンドです。
例えば、出力された文字列の中の 1 を @ に置換する場合は以下のように記述できます。
| |
あまり使う機会がありませんが、同じように「置き換え」を行う sed の内部コマンドとして c コマンドがあります。
c コマンドについて紹介します。
検証環境
| |
c コマンドは条件に合致した行を別の文字列で置き換える
c コマンドは条件に合致した行を別の文字列で置き換えるコマンドになります。
s コマンドとの違いは、置き換えの単位にあります。
s コマンドでは s/検索キーワード/置換文字列/ のように記述し、 「検索キーワード」 に合致した文字列のみを 「置換文字列」 に置き換えます。
c コマンドでは、 「行」をまるごと置き換えます 。
具体亭を見ていきましょう。
「キーワード」を使って対象行を指定する
まずは seq コマンドで 2 から 20 までの 2 の倍数を出力してみます。
| |
ここから、 2 を含む行をみつけ、 HELLO という文字列に置き換えてみます。
| |
「アドレス(行番号)」を使って対象行を指定する
アドレスを指定して対象行を置換する事もできます。
1 行目を置換してみます。
| |
開始アドレス、終了アドレスを使って範囲指定することもできます。 2 行目から 5 行目を置換してみます。
| |
$ で最終行を指定できます。
| |
ひとこと
s 内部コマンドとの違いは複数行をいっぺんに対象とする点になります。
複数行をまとめて 1 行に置き換える、といった場合は c 内部コマンドを使用することになります。