ファイルがありますが、jail.local
次のセクションがあります。
[apache]
enabled = true
logpath = /var/log/apache/error.log
[ssh]
enabled = false
port = ssh
欲しい
- 一致文字列の
[ssh]
合計 - 下の文字列の2行で置換を実行します。つまり、
enabled = false
到着enabled = true
だから新しいテキストは
[ssh]
enabled = true
port = ssh
私は使い方を見ましたが、この問題を解決するために必要なコマンドがむしろ「1行あたり」指向であることを理解するsed
ことはできません。この交換作業を実行するにはどうすればよいですか?sed
答え1
GNU sedの使用:
sed -e '/\[ssh\]/,+2{s/false/true/}' file
POSIX sedの使用:
sed -e '/\[ssh\]/n;n;s/false/true/' file