Извлечь домен из имени файла - PullRequest
0 голосов
/ 11 сентября 2018

Мне дан один zip-файл, который включает ровно 4 файла со следующим соглашением об именах:

2018.foo.abc.example.co.uk.20183740273
2018.foo.bcd.example.co.uk.20183740474
2018.foo.dce.example.co.uk.20183749769
2018.foo.def.example.co.uk.20183746483

Моя задача - извлечь домен из любого имени файла (любого, потому что все домены одинаковы) и сохраните его в переменной bash.Эти имена файлов являются просто примерами.Ключевым моментом является домен.Разделение происходит после третьей точки.

Ответы [ 2 ]

0 голосов
/ 12 сентября 2018

Если вы хотите извлечь домены с различным количеством полей (например, example.co.uk и example.com), вы можете использовать sed:

sed 's/\([^.]*.\)\{3\}//;s/.[0-9]*$//' filename

или комбинацию sed и cut, который более читабелен:

sed 's/.[0-9]*$//' filename | cut -d '.' -f4-
0 голосов
/ 11 сентября 2018

Если все файлы имеют одинаковые имена, вы можете использовать базовый AWK, чтобы найти ответ:

awk -F'.' 'print{$3,$4,$5}' <filename>

-F = разделитель полей.В данном случае это ..Теперь, когда мы разбили текст на столбцы данных, разделенные на ., мы сообщаем AWK, какие поля выводить на печать.

Или вы можете использовать cut:

cut -d '.' -f3-5 <filename>

Тот же принцип, что и в AWK, просто другой способ сделать это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...