[英]Extract domain from file name
我得到了一个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变量中。 这些文件名仅是示例。 关键是领域。 分割发生在第三个点之后。
如果所有文件都使用相同的约定命名,则可以使用一些基本的AWK查找答案:
awk -F'.' 'print{$3,$4,$5}' <filename>
-F
=字段定界符。 在这种情况下,它是一个.
。 现在,我们已经将文本分解成本质上是数据列,并在上进行了拆分.
,我们告诉AWK要打印哪些字段。
或者您可以使用cut:
cut -d '.' -f3-5 <filename>
与AWK相同的原理,只是执行方法不同。
如果要提取具有不同字段数的域(例如example.co.uk
和example.com
),则可以使用sed
:
sed 's/\([^.]*.\)\{3\}//;s/.[0-9]*$//' filename
或sed
和cut
的组合,更易读:
sed 's/.[0-9]*$//' filename | cut -d '.' -f4-
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.