【发布时间】:2015-05-21 16:25:55
【问题描述】:
我有一个包含多个子网的大文件,如下所示:
234.245.34.324/24
234.214.23.34/24
234.344.234.14/24
234.214.234.314/24
234.245.34.324/23
234.214.23.34/22
234.344.234.14/22
234.214.234.314/23
234.245.34.324/24
234.214.23.34/20
234.344.234.14/21
234.214.234.314/20
它们都具有不同的 IP 地址和相同的子网,例如我有 2340 个子网,/24。
现在,我希望将这些拆分为 2 个文件,其中 50% 的所有 /24 拆分位于每个文件中,/23、/22 /21 等也是如此。
我知道我可以与split -l 分开,但这只会给我电话。目的是让两个文件中的子网数量相等。
这应该在 Linux bash 中完成,因为它将是自动化的。
有人知道怎么做吗?
【问题讨论】:
-
对不起,忘了说这应该在 linux bash 中完成,因为它会自动进行
-
到目前为止你尝试过什么?请阅读How do I ask a good question?。
-
就个人而言,我首先会根据掩码大小过滤到一个文件(大概在一个临时目录中)——即。一个名为
20的文件包含所有/20s,一个名为19的文件包含所有/19s 等;这与 GNU awk 无关;然后你只取每个文件的一半。 -
嗨,到目前为止,我已经尝试过将这些行拆分到另一个文件中,但它仍然将它们保留在主文件中。 cat newsub.csv |排序-tr| awk '0 == NR % 2'
-
@kryd,这是否符合您按掩码长度过滤的意图?