我有一个文件,其中以未格式化的方式包含各种不同的信息。我被要求创建文本中引用的所有 .com 、 .org 和 .net .de 域名的列表。每个条目应该只包含domain.extension(stackexchange.com NOThttp://www.stackexchange.com/index) 并且应该只在列表中出现一次。
以下是数据示例:
230 User astalavista.com logged in.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls -la
227 Entering Passive Mode (212,254,194,163,2,188)
150 Opening BINARY mode data connection for 'file list'.
dr-x------ 1 root users 4096 Jun 4 06:13 astalavista.com
226 Transfer complete.
ftp> cd astalavista.com
250 CWD command successful.
ftp> ls -la
227 Entering Passive Mode (212,254,194,163,2,189)
150 Opening BINARY mode data connection for 'file list'.
-rw-rw-rw- 1 astalavista.com users 23410936878 Apr 29 22:10
09-04-28-astacom_full.tar
-rw-rw-rw- 1 astalavista.com users 20617651590 Apr 29 14:18
09-04-28-astacom_full.tar.bz2
-rw-rw-rw- 1 astalavista.com users 88287111 Apr 29 15:57
09-04-29-astacom_sql_full.sql.tar.bz2
-rw-rw-rw- 1 astalavista.com users 26413034040 May 2 00:21
09-05-01-astacom-Public_HTML.tar
rw-rw-rw- 1 astalavista.com users 277843549 May 1 17:29
09-05-01-astacom-SQL_Dump.tar
[snip]
226 Transfer complete.
ftp> mdelete *
ftp> ls -la
227 Entering Passive Mode (212,254,194,163,2,193)
150 Opening BINARY mode data connection for 'file list'.
226 Transfer complete.
ftp>
到目前为止,我已经使用 egrep 查找所有出现的 .com 、 .net 、 .org 、 .de 。
egrep '\.\de|\.\com|\.\org|\.\net' hacklog1
我一直在尝试使用 sed 删除其余不需要的数据,但无济于事。有人可以建议一个命令语法来帮助我。
答案1
尝试类似的方法:
egrep -o '[0-9A-Za-z_-]+\.(com|org|net|de)\b'
根据您的喜好调整 TLD 之前允许的字符以及公认的 TLD 列表应该相当容易。