行がsedを使用して別の文字列で始まる場合、ファイル内の文字列をどのように置き換えることができますか?
たとえば、次の行を置き換えます。
connection = sqlite://keystone:[YOURPASSWORD]@[YOURIP]/keystone
この行で:
connection = mysql://keystone:[email protected]/keystone
回答:
sed '/^start_string/s/search_string/replace_string/'
http://www.gnu.org/software/sed/manual/sed.html#Addresses の情報
あなたは単にこれを行うことができます:
sed -ri 's/sqlite/mysql/g' YOURFILE
パターンで始まり、それ以外で終わる行全体を変更する場合は、コマンドc
description の例を使用できます。
sed -i '/^connection = sqlite/c\connection = mysql://keystone:[email protected]/keystone' your_file
sed '/^string1/ { s,string2,string3, }' file
これにより、string1で始まるすべての行でstring2がstring3に置き換えられます。