Jaf*_*son 3 command-line text-processing
我有一个 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
Run Code Online (Sandbox Code Playgroud)
文件大小以千兆字节为单位。说大约 250 GB 的文件大小。
我试图反转文件中的单词并仅从文本中提取域。我尝试使用 Ubuntu OS 终端命令来制作它。让我告诉你我的尝试:
首先,我使用以下命令删除了“/”之后的数据:
~$ ex -sc '%s/\(\/\).*/\1/ | x' newfile.txt > ddm.txt
Run Code Online (Sandbox Code Playgroud)
结果如下:
com.blendtuts/
°=
com.blengineering.www/
±=
com.blenheimgang.www/
²=
com.blenheimsi
³=
com.blenkov.www/
´=
com.blentwell.www/
¸=
com.blentwell.www/
Run Code Online (Sandbox Code Playgroud)
现在我使用以下解决方案反转文件中的完整文本:https : //stackoverflow.com/questions/40467918/how-to-reverse-the-word-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
Run Code Online (Sandbox Code Playgroud)
但问题仍然没有解决。我想知道如何使用 Ubuntu 提取 URL 并将它们放入另一个文件中。正如您在输出上方看到的,我仍然拥有的不是域,它带有一个反斜杠。
如果使用任何其他操作系统可以解决此类问题,请告诉我。我更喜欢使用 Ubuntu。
我想从文件中提取域并将它们分离到另一个文件中,并且以正确的格式将它们分开。
如果我获得了唯一域,那么这将是我查询的绝佳解决方案。否则,我使用命令为:
$ sort filename.txt | uniq > save_to_file.txt
Run Code Online (Sandbox Code Playgroud)
请尽量不要使用 awk 命令给我一个解决方案,因为它在我的系统上不起作用。
样本数据:
com.blendschutzrollo.www/d_chefsessel6_Maxx_Chefsessel_mit_Kopfstutze_Chefdrehsessel___Munchen__374
¯=
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.blenoir.www/lat
µ=
com.blentwell.www/bookmarks.php/bashment%20jack/re
¶=
com.blentwell.www/bookmarks.php/djcable/rt
·=
com.blentwell.www/bookmarks.php/jackroldan/sp
¸=
com.blentwell.www/tags.php/I
¹=
com.blentwell.www/tags.php/eurot
º=
com.blentwell.www/tags.php/mitarbeiters
»=
com.blentwell.www/tags.php/verw
¼=
com.blenzblog/tag/olympic-w
½=
com.blepharoplastyusa.www/albany-n
¾=
Run Code Online (Sandbox Code Playgroud)
Perl 解决方案,采用字符串反转解决方案之一:
$ perl -F/ -anle 'print reverse(split("([^.]*)", $F[0])) if /\./' input
www.blendschutzrollo.com
blendtuts.com
www.blengineering.com
www.blenheimgang.com
blenheimsi.com
www.blenkov.com
www.blenoir.com
www.blentwell.com
www.blentwell.com
www.blentwell.com
www.blentwell.com
www.blentwell.com
www.blentwell.com
www.blentwell.com
blenzblog.com
www.blepharoplastyusa.com
Run Code Online (Sandbox Code Playgroud)
论据:
-F/ -aF从每一行输入中创建一个数组,在/.-nle在-e <expr>输入的每一行上运行表达式 ( ),不自动打印 ( -n),同时处理每行末尾的换行符 ( -l)/,我们只需要第一个之前的部分/,所以数组的第一个元素F:$F[0]。然后我们将其拆分.并反转每个,如果该行包含..现在你可以sort -u了。
| 归档时间: |
|
| 查看次数: |
547 次 |
| 最近记录: |