sedコマンドでファイルの中の文字列を置換して保存するには?

ショコラ
ショコラ

sedコマンドでファイルの中の文字列を置換して保存するには?

「sed -i ‘s/{検索文字列}/{置換文字列}/’ {ファイル名}」でキメマス。
※-iオプションは「ファイルを読み込んで、そのファイルに保存する」ということ。
※元の文字は括弧で囲って(括弧に¥のエスケープ必要)\1で利用します。

もっさん先輩
もっさん先輩

①ファイルの中の文字列を置換して画面に表示します。

sed 's/{検索文字列}/{置換文字列}/' {ファイル名}

②ファイルの中の文字列を置換してファイルを上書き保存します。

sed -i 's/{検索文字列}/{置換文字列}/' {ファイル名}

③複数のファイルを置換します。

sed -i 's/{検索文字列}/{置換文字列}/' {ファイルパターン}

④行を追加します。

sed -i '$a{追加する行}' {ファイル名}

⑤1行目に挿入します。

sed -i '1i{追加する行}' {ファイル名}

アパッチの AddDefaultCharset を「UTF-8」から「Off」に変更します。

sed -i 's/AddDefaultCharset UTF-8/AddDefaultCharset Off/' /etc/httpd/conf/httpd.conf

locale.genファイルの「# ja_JP.UTF-8」の行の「#」を取り有効化します。

sed -i 's/# ja_JP.UTF-8/ja_JP.UTF-8/' /etc/locale.gen

ドッカーファイルの中で oracle-xe-21c.confファイルの文字列を置換します。

echo "sed -i "\""s/CHARSET=AL32UTF8/CHARSET=${CHARSET}/"\"" /etc/sysconfig/oracle-xe-21c.conf";

CentOS8 のリポジトリを更新します。

sed -i 's/mirrorlist=/#mirrorlist=/; s/#baseurl=http:\/\/mirror/baseurl=http:\/\/vault/'\
 /etc/yum.repos.d/CentOS-Linux-*.repo

オラクルの日時に変換します。

sed -i "s/\('[0-9]\{4\}-[0-9]\{2\}-[0-9]\{2\} [0-9]\{2\}:[0-9]\{2\}:[0-9]\{2\}'\)/TO_DATE(\1,'YYYY-MM-DD HH24:MI:SS')/" pgdump.sql

正規表現の+は¥でエスケープします。

sed 's/VTFont=.\+$/VTFont=HackGen Console,0,-13,0/'

以上

Scroll to Top