加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

正则表达式 – 根据第二个文本文件从文本文件中删除重复项

发布时间:2020-12-13 21:53:13 所属栏目:百科 来源:网络整理
导读:如何通过检查第二个文本文件(removethese.txt)从文本文件(main.txt)中删除所有行.如果文件大于10-100mb,那么有效的方法是什么. [使用mac] 例: main.txt3125 删除这些行 removethese.txt329 输出: output.txt15 示例行(这些是我正在使用的实际行 – 顺序无
如何通过检查第二个文本文件(removethese.txt)从文本文件(main.txt)中删除所有行.如果文件大于10-100mb,那么有效的方法是什么. [使用mac]

例:

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匹配整行,以防止,例如,他将hello或highway等行匹配到地狱.
> -F使用固定字符串,以便参数按原样获取,而不是解释为正则表达式.
> -f从另一个文件中获取模式.在这种情况下,从removethese.

用awk:

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

像这样,我们将每一行存储在数组a []中.然后,我们读取主文件,然后打印那些不存在于数组中的行.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读