[Решено] регулярное выражение по поиску дублей.

На самом деле это единственный раздел про unix на этом форуме

Модераторы: /dev/random, Модераторы разделов

Аватара пользователя
bars
Сообщения: 970
ОС: BSD/LINUX

[Решено] регулярное выражение по поиску дублей.

Сообщение bars »

Добрый день.
Подскажите пожалуйста, как мне регулярку сформировать.
Не могу понять, как на одном проекте вывести виртуал хосты с дублями параметр listen.
Виртуал хостов много, домены разные и ип адреса.

Код: Выделить всё

server {
listen 1.2.3.4:80;
listen 1.5.1.5:80;
server_name www.test.local.site test.local.site;
location /.well-known/acme-challenge/ {
root /usr/local/www/cert/;
}
location / {
return 301 https://dev.local.site$request_uri;
}
}
server {
listen 1.2.3.4:443 http2 ssl;
listen 1.5.1.5:443 http2 ssl;
server_name www.test.local.site test.local.site;
return 301 https://dev.local.site$request_uri;
ssl_certificate /usr/local/etc/letsencrypt/live/test.local.site/fullchain.pem;
ssl_certificate_key /usr/local/etc/letsencrypt/live/test.local.site/privkey.pem;
ssl_trusted_certificate /usr/local/etc/letsencrypt/live/test.local.site/cert.pem;
include inc_conf/ssl_conf;
}
Если так просматривать то долго.
grep -B 1 -A 1 -r listen /etc/nginx/

Хотелось вывести названия виртуалхостов где есть дубль параметр listen внутри одного блока server.
Последний раз редактировалось bars 09.11.2023 11:31, всего редактировалось 1 раз.
Настройка BSD систем
Знание сила, незнание Рабочая сила!
Спасибо сказали:
Аватара пользователя
olecya
Сообщения: 901
ОС: debian, fedora (i3-wm)

Re: регулярное выражение по поиску дублей.

Сообщение olecya »

Можно было бы воспользоваться одним awk, но я не знаю, лежат ли файлы в одной директории или нет. Если нет, тогда лучше через конвейер:

Код: Выделить всё

grep -r -A3 '^server {$' /etc/nginx/ | awk 'BEGIN {RS="--"} /listen.*listen/ {print $NF}'
Спасибо сказали:
Аватара пользователя
bars
Сообщения: 970
ОС: BSD/LINUX

Re: регулярное выражение по поиску дублей.

Сообщение bars »

Спасибо получилось.
Настройка BSD систем
Знание сила, незнание Рабочая сила!
Спасибо сказали: