>> grep -F -B `sed -n '$=' nginx.conf` 'http://87.123.523463.1231' nginx.conf | grep
>> 'server_name'
> Большое спасибо за ответ, а не подскажете еще, как в вывод еще
> и location, в котором встретился искомый proxy_pass, добавить ? чтобы получилось
> что-то типа:
> test1.ru
> location /some Как через grep sed awk я не знаю, скорее всего можно, шахматы вон на sed реализовали.
Но чиста из спортивного интереса и любви к искусству, пришлось расчехлить perl ))
#!/usr/bin/perl
use strict;
use warnings;
my $conf = "nginx.conf";
my @arr;
open ( FILECONF, $conf ) or die $!;
my @lines = reverse <FILECONF>;
close FILECONF;
for ( @lines )
{
chomp;
s/#.*//;
s/^\s+//;
s/\s+$//;
next unless length;
if ( /87\.123\.523463\.1231/ ... /server_name/ )
{
unshift ( @arr, $_ );
}
}
for ( @arr )
{
s/^proxy.*$//;
print $_, "\n";
}
выхлоп с него:
server_name test.ru
location /
server_name test2.ru
location /
server_name test6.ru
location /some