Grep из nginx файлов сервера, но исключают www.domain.tld

У меня есть команда в сценарии удара как это, для получения меня массив всех доменов на моем веб-сервере.

domains=($(grep -rnw '/etc/nginx/sites-available/' -e 'server_name' -l | xargs grep -e 'server_name' | awk '{print $3}'))

Формат nginx файла сервера имеет строку имени сервера, снабженную префиксом вкладку, и затем server_name domain.tld;

Это хорошо работает, и я получаю список просто доменных имен назад, но только если www. префикс не определяется в строке имени сервера. В этом случае строка имени сервера была бы похожа server_name www.domain.tld domain.tld; или server_name domain.tld www.domain.tld;, оба приемлемые пути.

Q: В случае определяется www. префикс, я возвращаю то, что является первым в порядке. Есть ли способ, которым я мог проигнорировать www.domain.tld часть от результатов, чтобы только возвратиться domain.tld?

0
задан 28 March 2020 в 18:11

1 ответ

С GNU sed можно попробовать это:

domains=$(grep -rwn "/etc/nginx/sites-available/" -e "server_name" | sed -E -e 's/ www\.\w+\.\w+//g')

printf "%s\n" "$domains"
1
ответ дан 7 April 2020 в 23:26

Другие вопросы по тегам:

Похожие вопросы: