如何使用Ubuntu命令从文本文件中提取域名?

时间:2016-11-08 05:50:17

标签: linux bash ubuntu command-line command-prompt

我有一个网址文件,格式如下:

com.blendtuts/S
°=
com.blengineering.www/:http
±=
com.blenheimgang.www/le-porsche-museum-en-details/porsche-museum-3
²=
com.blenheimsi
³=
com.blenkov.www/page/media/18/34/376
´=
com.blentwell.www/bookmarks.php/jackroldan/sp
¸=
com.blentwell.www/tags.php/I

文件大小以千兆字节为单位。说大约250 GB的文件大小。

我试图反转文件中的单词并仅从文本中提取域。我尝试使用Ubuntu OS终端命令。 让我告诉你我的尝试:

首先,我使用以下命令删除了“/”之后的数据:

~$ ex -sc '%s/\(\/\).*/\1/ | x' newfile.txt > ddm.txt

结果为:

com.blendtuts/
 °=
com.blengineering.www/
±=
com.blenheimgang.www/
²=
com.blenheimsi
³=
com.blenkov.www/
´=
com.blentwell.www/
¸=
com.blentwell.www/

现在,我使用以下解决方案撤消了文件中的完整文字:How to reverse all the words in a file with bash in Ubuntu?

得到以下结果:

    /blendtuts.com
    °= /www.blengineering.com
    ±= /www.blenheimgang.com
    ²= blenheimsi.com
    ³= /www.blenkov.com
    µ=  /www.blentwell.com
    ¶=  /www.blentwell.com
    •=  /www.blentwell.com

/www.blentwell.com

但问题仍未解决。我想如何使用Ubuntu提取URL并将它们放入另一个文件中。正如你在上面看到的输出我仍然拥有的不是域,它有一个反斜杠。

如果使用任何其他操作系统有另一种解决此问题的方法,请告诉我。我更喜欢和Ubuntu一起去。

我想从文件中提取域名并将它们分成另一个文件,并且也是以适当的格式分开。

如果我获得了独特的域名,那么它将成为我查询的绝佳解决方案。否则,我使用命令:

$ sort filename.txt | uniq > save_to_file.txt

希望听到解决方案 请在此处查看示例文件:Sample File

3 个答案:

答案 0 :(得分:1)

请考虑以下内容进行域名提取和还原:

awk -F '/' '/com\./ {split($1, arr, /\W+/, seps); for (i=length(arr); i>=1; i--){s = s seps[i] arr[i];} print s ; s="";}'

答案 1 :(得分:0)

  1. 删除无效条目,大多数情况下,我们对以ASCII字符开头并以字符结尾的行感兴趣' ='
  2. 我们首先感兴趣的是/
  3. 反转网址
  4. 我在您的内容上尝试了以下命令,该命令提供了网址

    cat -v filename.txt | grep -v '^M-.=' | awk -F '/' '{print $1}' | awk -F '.' 'BEGIN{ORS="";}{ for (i=NF; i>0; i--) if ( i == 1 ) { print $i } else { print $i".";} print "\n"; }'
    

    输出

    www.blendschutzrollo.com

    blendtuts.com

    www.blengineering.com

    www.blenheimgang.com

答案 2 :(得分:0)

我有这个答案:

$ perl -F/ -anle 'print reverse(split("([^.]*)", $F[0])) if /\./' file_name.txt

可以参考:https://askubuntu.com/questions/847307/how-to-do-this-in-a-single-command-on-ubuntu-16-04