次のような「test」ファイルがあります。
RewiteEngine On
RewriteCond %{REMOTE_ADDR} !^192\.168\.1\.7$ [NC]
RewriteCond %{REMOTE_ADDR} !^192\.168\.1\.8$ [NC]
RewriteCond %{REMOTE_ADDR} !^192\.168\.1\.9$ [NC]
RewriteCond %{REMOTE_ADDR} ^192\.168\.1\.5$ [NC]
</Directory>
交換したい場合は\.1\.7
次のとおり\.1\.8
です。\.1\.9
\.1\.10
RewiteEngine On
RewriteCond %{REMOTE_ADDR} !^192\.168\.1\.10$ [NC]
RewriteCond %{REMOTE_ADDR} ^192\.168\.1\.5$ [NC]
</Directory>
m「IPS」をn「IPS」に置き換えることもできます。どうすればこれを達成できますか?
ベストアンサー1
一方perl
通行:
$ perl -ple 's/\\\.1\\\.(7|8|9)/\\.1\\.10/' file | uniq
RewiteEngine On
RewriteCond %{REMOTE_ADDR} !^192\.168\.1\.10$ [NC]
RewriteCond %{REMOTE_ADDR} ^192\.168\.1\.5$ [NC]
</Directory>
その場で編集するには、以下を試してください。
perl -i.bak -nle 'next if $count and /!\^/;s/\\\.1\\\.(7|8|9)/\\.1\\.10/ and $count++ if /!\^/;print' file