我有一个包含域名的文件。我想搜索并删除用于子域的行。子域包含多个点(。)。例子:
子域:ab.cd.fg
或ab.cd.fg.hi
。
完整域包含一个点:ab.cd
我不确定我的正则表达式是否正确,尽管点数很多,仍会捕获任何子域:
grep '.\..(\..)+' myfile.csv
以上是我尝试搜索包含子域的行的尝试。如何删除它们并将新过滤的结果保存到新文件中?
样本输入:
ab.cd.fg
ab.cd
ab.cd.fg.hi.jk
输出应该是从具有子域的行清除的文件,子域是具有一个点的行。
ab.cd
答案 0 :(得分:0)
这可以完成工作:
grep -P '^[^.]+\.[^.]+$' input_file
哪里
-P
:perl正则表达式^
:行首[^.]+
:1个或多个非点字符\.
:一个点[^.]+
:1个或多个非点字符$
:行尾