У меня есть список доменов, подобранных и переданных по каналу в через grep с различной длиной, но всем соответствием последние три записи. Я пытаюсь произвести все неквалифицированные субдомены.
Я имею:
awk -F'.' -v OFS='.' '{$(NF-3)=$(NF-2)=$(NF-1)=""; print $0}'
мои выходные листы, запаздывающие...... на выводе
Спасибо
Попытайтесь заменить ими:
$ awk -F'.' 'sub(FS $(NF-2) FS $(NF-1) FS $NF,"")' <<<"www.cse.iitb.ac.in"
www.cse
я не уверен, почему это работает, и Ваш метод не делает, но согласно этому unix.com сообщение, это - путь.
Когда вывод создания, awk
повинуется текущему значению NF
. Если Вы хотите устранить последние три поля, просто уменьшите NF
три, такой как через NF-=3
:
awk -F. -v OFS=. '{NF-=3; print $0}'
Используя это с Вашим демонстрационным входом:
$ echo $'site.subdomain.xyz.com\nsite.sub.subdomain.xyz.com' | awk -F. -v OFS=. '{NF-=3; print $0}'
site
site.sub
Кстати, период, .
, не активный против оболочки символ. Так, этому не нужно заключение в кавычки.