我有一个文件(.htaccess
),其中包含以下摘录。
<Files wp-login.php>
order deny,allow
deny from all
allow from 45.152.35.2
</Files>
我需要更换45.152.35.2
为我当前的IP。但45.152.35.2
并不是静态的。我需要在allow from
该行找到 IP 表达式并将其替换为我当前的 IP。
我还需要75.152.35.4
从w
命令获取我当前的 IP ( ):
12:13:07 up 21 days, 3:01, 1 user, load average: 0.18, 0.13, 0.12
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/0 75.152.35.4 14:29 0.00s 0.10s 0.00s w
如何从w
命令获取当前 IP 并替换文件allow from
中的行.htaccess
?
答案1
你可以使用这个:
sed -i "s/allow from [0-9,\.]*/allow from $(w -h | awk '{print $3}' | head -1)/g" .htaccess
解释:
sed -i "s/.../$(...)/g .htaccess
: 将allow from
行替换为w -h | awk '{print $3}' | head -1
:输出的第一行w