gpt4 book ai didi

regex - 根据第二个文本文件从文本文件中删除重复项

转载 作者:行者123 更新时间:2023-11-29 09:01:28 26 4
gpt4 key购买 nike

如何通过检查第二个文本文件 (removethese.txt) 从文本文件 (main.txt) 中删除所有行。如果文件大于 10-100mb,什么是有效方法。 [使用苹果机]

示例:

main.txt
3
1
2
5

删除这些行

removethese.txt
3
2
9

输出:

output.txt
1
5

示例行(这些是我正在使用的实际行 - 顺序无关紧要):

ChIJW3p7Xz8YyIkRBD_TjKGJRS0
ChIJ08x-0kMayIkR5CcrF-xT6ZA
ChIJIxbjOykFyIkRzugZZ6tio1U
ChIJiaF4aOoEyIkR2c9WYapWDxM
ChIJ39HoPKDix4kRcfdIrxIVrqs
ChIJk5nEV8cHyIkRIhmxieR5ak8
ChIJs9INbrcfyIkRf0zLkA1NJEg
ChIJRycysg0cyIkRArqaCTwZ-E8
ChIJC8haxlUDyIkRfSfJOqwe698
ChIJxRVp80zpcEARAVmzvlCwA24
ChIJw8_LAaEEyIkR68nb8cpalSU
ChIJs35yqObit4kR05F4CXSHd_8
ChIJoRmgSdwGyIkRvLbhOE7xAHQ
ChIJaTtWBAWyVogRcpPDYK42-Nc
ChIJTUjGAqunVogR90Kc8hriW8c
ChIJN7P2NF8eVIgRwXdZeCjL5EQ
ChIJizGc0lsbVIgRDlIs85M5dBs
ChIJc8h6ZqccVIgR7u5aefJxjjc
ChIJ6YMOvOeYVogRjjCMCL6oQco
ChIJ54HcCsaeVogRIy9___RGZ6o
ChIJif92qn2YVogR87n0-9R5tLA
ChIJ0T5e1YaYVogRifrl7S_oeM8
ChIJwWGce4eYVogRcrfC5pvzNd4

最佳答案

有两种标准方法可以做到这一点:

使用grep:

grep -vxFf removethese main

这使用:

  • -v 反转匹配。
  • -x 匹配整行,例如,防止 he 匹配 hellohighway to hell
  • -F 使用固定字符串,以便参数按原样使用,而不是解释为正则表达式。
  • -f 从另一个文件中获取模式。在这种情况下,从 removethese

使用awk:

$ awk 'FNR==NR {a[$0];next} !($0 in a)' removethese main
1
5

像这样,我们将 removethese 中的每一行存储在数组 a[] 中。然后,我们读取 main 文件并只打印数组中不存在的那些行。

关于regex - 根据第二个文本文件从文本文件中删除重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30820894/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com