У меня есть такой список доменов:
a.example.com
b.foo.com
a.b.bar.com
Я хочу, чтобы вывод захватил только домены второго уровня и ничего больше, т.е. не 3-го уровня или выше. Это то, что я ищу в моем списке примеров выше:
example.com
foo.com
bar.com
Я пробовал использовать sed
, awk
и cut
следующим образом:
sed
cat domains.txt | sed 's/\.$//g'
cat domains.txt | sed -r 's/^(.*)_/\1\\/; s/.$//g' # this removes the last character for some reason
awk
awk '{ sub(/\.$/, ""); print $NF }' domains.txt
cat domains.txt | awk -F\. '{print $1,$2}' | tr ' ' '.' # won't work since there are 4th level domains
cut
cat domains.txt | cut -d '.' -f[field] # won't work since there are 4th level domains