次のようにファイルを編集する必要があります。
auto wlx00
allow-hotplug wlx00
iface wlx000 inet dhcp
iface wlx000 inet6 auto
post-up sysctl -w net.ipv6.conf.wlx000.accept_ra=2
auto wlx000
目標は、「iface ... inet6」で始まる行を削除し、スペースで始まる次の数行を削除することです(なし以上の可能性があります)。
iface wlx000 inet6 auto
post-up sysctl -w net.ipv6.conf.wlx000.accept_ra=2
次の結果を得るには、残りを変更せずに残してください。
auto wlx00
allow-hotplug wlx00
iface wlx000 inet dhcp
auto wlx000
私は次のようにsedを試しました。
sed -i.old -r -e "/iface\s*\w*\s*inet6.*/,\${d;/^\s.*/d;}" /etc/configfile
しかし、正しい位置から始まり、最後まで消去されたすべてを削除します。 ifaceテキストを選択した後、スペースで始まる行だけを削除したいと思います。
ベストアンサー1
モノライナーを次のように調整してみてくださいsed
。
sed '/iface\s*\w*\s*inet6.*/,/^[^ ]/ {/^[^ i]/!d}' file
最初のパターンから空白文字で始まらない最初の行までの範囲を一致させ、空白またはiface
「i」(先行)で始まる行を削除します.i
今後のブロックが必要かどうか再検討が必要です。
次のように動作するようです。
sed -n '/iface\s*\w*\s*inet6.*/ {:L; n; /^[ ]/bL;}; p' file
試してみてもう一度報告してください。