次の構成ファイルがたくさんあります。
reader_0 = newcamd({
name = "Oct 1",
host = "hostname 1",
port = 27020,
user = "UNAME",
pass = "password1",
key = "0102030405060708091011121314",
})
reader_1 = newcamd({
name = "Oct 2",
host = "hostname 2",
port = 27020,
user = "UNAME",
pass = "password2",
key = "0102030405060708091011121314",
})
ポート番号27020を「reader_1」セクションの他のポート番号(22443など)に置き換える方法sed?
ありがとうございます。
ベストアンサー1
sedの全身であるedを使用してください。
ed -s input <<< $'/^reader_1 =\n/^port =\nc\nport = 22443,\n.\nw\nq'
ed
これにより、ファイルを編集するためにANSI引用符付きコマンド文字列が送信されます。コマンドは次のとおりです。
/^reader_1 =
- "reader_1 ="で始まる行を検索する/^port =
- そこから「port =」で始まる行を前方に検索します。c
- この行を変更してくださいport = 22443,
- 本文に移動.
- 代替テキストの終わりw
--ディスクにファイルを書き込むq
- 辞職するed
実際のデータに基づいて、ある程度慎重に一致するように正規表現を強化または緩めることができます。