我有一个动态生成的txt文件,其结构为-〉Code[space]Link
这是一个简单的
15210 https://test1.com
4 https://test2.com
1020 https://testc.com
152 https://testz.com
152 https://test5.com
10 https://test54.com
152 https://testx.com
10 https://testds.com
15210 https://testmp.com
它可以变得更大,高达1亿线
我想只显示文件上的所有链接,只有当相同的代码没有重复或等于3次,例如。
在这种情况下,输出将是
https://test1.com
https://test2.com
https://testc.com
https://test54.com
https://testds.com
https://testmp.com
在152代码前面的所有链接不会显示在输出中,因为152重复〉= 3次。如果任何其他代码值重复〉=3次,情况相同。
只是,我希望这个条件的数字是3在上面的例子是用户输入的命令。
2条答案
按热度按时间bfrts1fy1#
您也可以使用
awk
对排序后的输出执行一次遍历。例如,您可以执行以下操作:(最大数组就是重复代码的最大数量(例如,三个
152
代码对应3个元素),而不是每个代码对应一个元素)使用/输出示例
sort -n
将更改输出顺序,但在上面的yourfile
中给定输入,您将具有:如果你有问题就告诉我。
iovurdzv2#
您可以执行两遍解决方案,如下所示:
图纸:
或者,如果
$1
中定义了很多元素,但内存无法保存它们,可以先排序,然后将块分开,然后只打印少于3行的块中的行中的$2
:这样会比较慢,并且原始文件中的顺序会丢失。