カテゴリー
Linux

【sed】特定の文字列を含む行頭または行末に指定文字列を追加するやり方

行末に追加するコマンド

# 特定の文字列を (正規表現可能) を含む行に対してのみ置換
# sed '/検索対象文字列/s/置換前文字列/置換後文字列を/g'
# 行末に文字列を追加
# sed '$ 追加文字列'
# 以上から
# 特定の文字列を含む行の行末に文字列を追加
sed '/検索対象文字列/s/$/行末追加文字列/' ファイルパス

行頭に追加する場合

行末を示すのは $ でした。これを行頭を示す ^ に変更するだけですの♪

# 特定の文字列を含む行の先頭に文字列を追加
sed '/検索対象文字列/s/^/行頭追加文字列/' ファイルパス

おわりに

今回のやり方は、データベースの定義ファイルで、一部コメントにしたい行、一部行末のセミコロンがない行を置換したいと思いまして調べました。

具体的には、次のようなイメージですわ。

# 行末置換
sed '/ charset=utf8/s/$/;/' ddl.sql
# 行頭置換
sed '/ table info: /s/^/-- /' ddl.sql

これで一発で変換できるようになりました。やったぜ!

他にも使用できるシーンは多そうですの♪

最後に、参考になったページです。ありがとう存じます!

以上です。

コメントを残す