sedコマンド使用例

Linuxコマンドsed

目次一覧

 状態:-  閲覧数:410  投稿日:2018-03-28  更新日:2019-05-20
sed 's/置換前文字列/置換後文字列/'

__ | sed 's/置換前文字列/置換後文字列/'

grep -rl 置換前文字列 . | xargs sed -i 's/置換前文字列/置換後文字列/g'

$ find パス -type f -exec sed -i 's/置換前文字列/置換後文字列/g' {}

$ find パス -type f -exec sed -i 's%置換前文字列%置換後文字列%g' {} +

$ find パス -type f -exec sed -i 's%置換前文字列\.%置換後文字列%g' {} +

$ find パス -type f -name '*.php' -exec sed -i 's%置換前文字列\.%置換後文字列%g' {} +

sed 's/置換前文字列/置換後文字列/'

 閲覧数:123 投稿日:2018-03-28 更新日:2018-03-28 

タブ文字を改行へ置換


g がないため、(全行で置換を実行するが)1行に2つ以上マッチした場合は 1つ目しか置換しない(最初に一致した文字列だけ置換)

置換前
・\t

置換後
・\n

sed 's/\t/\n/'


__ | sed 's/置換前文字列/置換後文字列/'

 閲覧数:101 投稿日:2018-03-28 更新日:2018-03-28 

1000行目を標準出力へ出力表示する際、タブ文字を改行へ置換


「title-5000.txt」「abstract-5000.txt」を読込、水平方向に連結後、先頭から1000行読込、最後の一行を表示
・つまり1000行目を標準出力に出力表示
・その際、タブ文字を改行へ置換
・g がないため、(全行で置換を実行するが)1行に2つ以上マッチした場合は 1つ目しか置換しない(最初に一致した文字列だけ置換)
・パイプ使用
$ paste title-5000.txt abstract-5000.txt | head -n 1000 | tail -n 1 | sed 's/\t/\n/'



grep -rl 置換前文字列 . | xargs sed -i 's/置換前文字列/置換後文字列/g'

 閲覧数:105 投稿日:2018-03-28 更新日:2018-03-28 

カレントディレクトリ以下の全ファイル内容を全文置換


grep -rl 置換前文字列 . | xargs sed -i 's/置換前文字列/置換後文字列/g'
# grep -rl e1blue.net . | xargs sed -i 's/e1blue.net/e1blue.co/g'


$ find パス -type f -exec sed -i 's/置換前文字列/置換後文字列/g' {}

 閲覧数:106 投稿日:2018-04-02 更新日:2018-04-06 

作成例。エスケープあり


置換前文字列
・w4c.co

置換後文字列
・w4c.work

$ find /var/www/html -type f -exec sed -i 's/w4c\.co/w4c.work/g' {} +


$ find パス -type f -exec sed -i 's%置換前文字列%置換後文字列%g' {} +

 閲覧数:102 投稿日:2018-04-02 更新日:2018-04-26 

セパレータ文字列変更


置換文字列が「/」を含むため、セパレータ文字列変更
$ find パス -type f -exec sed -i 's%置換前文字列%置換後文字列%g' {} +

作成例1


置換前文字列
・www/lib

置換後文字列
・www/html/lib

$ find /var/www/html -type f -exec sed -i 's%www/lib%www/html/lib%g' {} +

作成例2


置換前文字列
・www/1-p7-b4

置換後文字列
・www/html/1-p7-b4

$ find /var/www/html -type f -exec sed -i 's%www/1-p7-b4%www/html/1-p7-b4%g' {} +

作成例3


置換前文字列
・/var/www/lib

置換後文字列
・/var/www/html/lib

$ find /var/www/html -type f -exec sed -i 's%/var/www/lib%/var/www/html/lib%g' {} +




プライベートLink

$ find パス -type f -exec sed -i 's%置換前文字列\.%置換後文字列%g' {} +

 閲覧数:135 投稿日:2018-04-02 更新日:2018-04-29 

「セパレータ文字列変更」&「エスケープ使用」


置換文字列が「/」を含むため、セパレータ文字列変更
置換文字列が「.」を含むため、「\」でエスケープ
$ find パス -type f -exec sed -i 's%置換前文字列\.%置換後文字列%g' {} +

エスケープする場所に注意
・エスケープする箇所は「置換前文字列」のみ
・「置換後文字列」に「.」が含まれていても、エスケープしない

作成例


置換前
www/w4c.work

置換後
www/html/w4c.work

$ find /var/www/html -type f -exec sed -i 's%www/w4c\.work%www/html/w4c.work%g' {} +


プライベートLink

$ find パス -type f -name '*.php' -exec sed -i 's%置換前文字列\.%置換後文字列%g' {} +

 閲覧数:105 投稿日:2019-05-20 更新日:2019-05-20 

ファイル拡張子も指定


・区切り文字変更
$ find パス -type f -name '*.php' -exec sed -i 's%置換前文字列\.%置換後文字列%g' {} +

実行例1


置換前
<link rel="shortcut icon" href="favicon\.ico">

置換後

実行コマンド
$ find /var/www/html -type f -name '*.php' -exec sed -i 's%<link rel="shortcut icon" href="favicon\.ico">%%g' {} +

実行例2


置換前
<link rel="shortcut icon" href="\.\./favicon\.ico">

置換後

実行コマンド
$ find /var/www/html -type f -name '*.php' -exec sed -i 's%<link rel="shortcut icon" href="\.\./favicon\.ico">%%g' {} +



CentOSで、指定ディレクトリ以下の「ディレクトリ名」の置換リネーム、「ファイル名」の置換リネーム、「ファイル内容」の全文置換



週間人気ページランキング / 9-14 → 9-20
順位 ページタイトル抜粋 アクセス数
1 PHPのmb_send_mail関数でメール送信できない | メール処理システム 29
2 Nginx設定。エラーログレベル | Nginx(Webサーバ) 21
3 Python 3.5 アンインストール / yum remove | Python(プログラミング言語) 11
4 FFmpeg 2.8.15 を yum インストール | ソフトウェアスイート 10
5 PHP実行ユーザ設定 / CentOS6 / Apache | PHP(プログラミング言語) 9
6 PHP Version 7.1.2 php-mecabエクステンション対応 / PHP 7.0.14 からのアップグレード  | MeCab(形態素解析) 8
6 ソースからビルドしたPython 2.7.3 アンインストール失敗 | Python(プログラミング言語) 8
7 touch コマンド / viコマンド。新規ファイル作成時の違い | Linuxコマンド 7
7 さくらVPS0 7
8 9回目-13.MySQL5.7.21設定 | CentOS 7 2週間無料のお試し期間 9回目(さくらVPS) 6
8 「設定ファイルに、暗号化 (blowfish_secret) 用の非公開パスフレーズの設定を必要とするようになりました。」対応 6
9 PHPファイルでchmodエラー | PHP(プログラミング言語) 5
9 設定 2019/1/22 / 一般ユーザがmailコマンドでメール送信 / 管理者がmailコマンドでメール送信 5
10 Postfix | メール処理システム 4
10 CentOSでcpコマンド動作確認するためには、Control + T ではなく、 -v オプションを使用 | cp(Linuxコマンド) 4
10 499 (Request has been forbidden by antivirus) | HTTP(通信プロトコル) 4
10 tar | Linuxコマンド 4
10 Python 3.6 インストール / make altinstall | Python(プログラミング言語) 4
10 「CentOS6」から「CentOS7」への移行 | CentOS 7 (CentOS) 4
10 echo と cat の違い 4
2021/9/21 1:01 更新