次の行を含むファイルがあります。
proto udp
.
.
.
..
server 10.10.8.0/24 255.255.255.0
このラインサーバー10.10.8.0/24 255.255.255.0から/ 24のみを削除する方法が必要です。
server 10.10.8.0 255.255.255.0
この行は変更可能ですが、唯一の定数は/次のようになります。
server 198.196.178.0/8 255.0.0.0
したがって、これを行うには、この行からのみ/ 8を削除する方法が必要です。
server 198.196.178.0 255.0.0.0
ベストアンサー1
sed
キャプチャされたグループでGNUを使用してください。
sed -r 's_^(server\s+([^.]+.){3}[0-9]{1,3})/[0-9]+(.*)_\1\3_' file.txt
ファイルをその場で編集するには、-i
次のオプションを使用します。
sed -ri 's_^(server\s+([^.]+.){3}[0-9]{1,3})/[0-9]+(.*)_\1\3_' file.txt
例:
% sed -r 's_^(server\s+([^.]+.){3}[0-9]{1,3})/[0-9]+(.*)_\1\3_' <<<'server 10.10.8.0/24 255.255.255.0'
server 10.10.8.0 255.255.255.0
% sed -r 's_^(server\s+([^.]+.){3}[0-9]{1,3})/[0-9]+(.*)_\1\3_' <<<'server 198.196.178.0/8 255.0.0.0'
server 198.196.178.0 255.0.0.0