Como substituir o IP na linha específica

1

Eu tenho um arquivo ( .htaccess ) que contém o trecho abaixo.

<Files wp-login.php>
order deny,allow
deny from all
allow from 45.152.35.2
</Files>

Eu preciso substituir 45.152.35.2 pelo meu IP atual. Mas 45.152.35.2 não é estático. Preciso encontrar a expressão IP em allow from line e substituí-la pelo meu IP atual.

Eu também preciso obter meu IP atual ( 75.152.35.4 ) do comando w :

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

Como posso obter o IP atual do comando w e substituir a linha allow from no arquivo .htaccess ?

    
por NecNecco 24.09.2014 / 23:06

1 resposta

1

Você pode usar isto:

sed -i "s/allow from [0-9,\.]*/allow from $(w -h | awk '{print $3}' | head -1)/g" .htaccess

Explicação:

  • sed -i "s/.../$(...)/g .htaccess : substitui a linha allow from por
  • w -h | awk '{print $3}' | head -1 : a primeira linha da saída de w
por 24.09.2014 / 23:57