可能不是你要找的东西,但我目前正在做一些工作来解析 RAW whois 数据库文件(你可以从'ripe/database 中的ftp://ftp.ripe.net/下载它们的完整形式' 目录)
像你一样,我想过滤掉免责声明,但我有不同的需求,主要是我在将文件提供给要插入数据库的数据库脚本之前对文件进行预处理。
无论如何,我使用以下命令行来预过滤纯文本数据库文件:
cat ripe.db.as-block | grep -v '^\s*#' | grep -v '^remarks:\s*\*'
我想从那以后,您可以将输出通过管道传输到您的 perl 脚本中,或者使用 > 运算符将其写入新文件,然后使用您的 perl 脚本处理该新文件。
这也适用于使用 sourceforge 的 GnuWin32 工具集的 Windows,它为您提供与 Windows 兼容的命令行二进制文件,这些二进制文件反映了它们的 linux 对应部分,但您需要调整引号,主要是从 ' 到 "
作为它剥离的一个例子:
这个....
#
# The contents of this file are subject to
# RIPE Database Terms and Conditions
#
# http://www.ripe.net/db/support/db-terms-conditions.pdf
#
as-block: AS1877 - AS1901
descr: RIPE NCC ASN block
remarks: These AS Numbers are further assigned to network
remarks: operators in the RIPE NCC service region. AS
remarks: assignment policy is documented in:
remarks: <http://www.ripe.net/ripe/docs/asn-assignment.html>
remarks: RIPE NCC members can request AS Numbers using the
remarks: form available in the LIR Portal or at:
remarks: <http://www.ripe.net/ripe/docs/asnrequestform.html>
org: ORG-NCC1-RIPE
admin-c: DUMY-RIPE
tech-c: DUMY-RIPE
mnt-by: RIPE-DBM-MNT
mnt-lower: RIPE-NCC-HM-MNT
changed: unread@ripe.net 20000101
source: RIPE
remarks: ****************************
remarks: * THIS OBJECT IS MODIFIED
remarks: * Please note that all data that is generally regarded as personal
remarks: * data has been removed from this object.
remarks: * To view the original object, please query the RIPE Database at:
remarks: * http://www.ripe.net/whois
remarks: ****************************
结局是这样的:
as-block: AS1877 - AS1901
descr: RIPE NCC ASN block
remarks: These AS Numbers are further assigned to network
remarks: operators in the RIPE NCC service region. AS
remarks: assignment policy is documented in:
remarks: <http://www.ripe.net/ripe/docs/asn-assignment.html>
remarks: RIPE NCC members can request AS Numbers using the
remarks: form available in the LIR Portal or at:
remarks: <http://www.ripe.net/ripe/docs/asnrequestform.html>
org: ORG-NCC1-RIPE
admin-c: DUMY-RIPE
tech-c: DUMY-RIPE
mnt-by: RIPE-DBM-MNT
mnt-lower: RIPE-NCC-HM-MNT
changed: unread@ripe.net 20000101
source: RIPE
过滤的技巧是使用反向 grep,即命令行中的“-v”,它本质上说的是让每一行都通过除了那些匹配模式的行,而不是正常调用,它用于选择想要的线条。
如果您有额外的标准要在处理之前过滤掉,那么您需要做的就是使用管道字符将更多反向 grep 命令传递到末尾。