如何使用 Ubuntu 命令从文本文件中提取域?
How to extract domain from a text file using Ubuntu Command?
我有一个 URL 文件,格式如下:
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/\(\/\).*// | x' newfile.txt > ddm.txt
结果为:
com.blendtuts/
°=
com.blengineering.www/
±=
com.blenheimgang.www/
²=
com.blenheimsi
³=
com.blenkov.www/
´=
com.blentwell.www/
¸=
com.blentwell.www/
现在我使用以下解决方案反转了文件中的完整文本:
得到如下结果:
/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
对于域提取和还原,请考虑以下事项:
awk -F '/' '/com\./ {split(, arr, /\W+/, seps); for (i=length(arr); i>=1; i--){s = s seps[i] arr[i];} print s ; s="";}'
- 删除无效条目,大多数情况下我们对以 ASCII 字符开头并以字符 '=' 结尾的行不感兴趣
- 我们对URL先/
感兴趣
- 反转 URL
我已尝试对您的内容执行以下命令,它给出了 URLs
的列表
cat -v filename.txt | grep -v '^M-.=' | awk -F '/' '{print }' | 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
.
.
.
我得到了这个答案:
$ 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
我有一个 URL 文件,格式如下:
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/\(\/\).*// | x' newfile.txt > ddm.txt
结果为:
com.blendtuts/
°=
com.blengineering.www/
±=
com.blenheimgang.www/
²=
com.blenheimsi
³=
com.blenkov.www/
´=
com.blentwell.www/
¸=
com.blentwell.www/
现在我使用以下解决方案反转了文件中的完整文本:
得到如下结果:
/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
对于域提取和还原,请考虑以下事项:
awk -F '/' '/com\./ {split(, arr, /\W+/, seps); for (i=length(arr); i>=1; i--){s = s seps[i] arr[i];} print s ; s="";}'
- 删除无效条目,大多数情况下我们对以 ASCII 字符开头并以字符 '=' 结尾的行不感兴趣
- 我们对URL先/ 感兴趣
- 反转 URL
我已尝试对您的内容执行以下命令,它给出了 URLs
的列表cat -v filename.txt | grep -v '^M-.=' | awk -F '/' '{print }' | 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
.
.
.
我得到了这个答案:
$ 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