说我有两个文件。file1.txt和file2.txt
这两个文件都包含鞋品牌名称(超过1000个名称)的列表,如下所示:
品牌1品牌2品牌3品牌...
现在-我想将file1与file2进行比较,删除所有重复出现的条目,仅向我显示file1中的内容(不在file2中),反之亦然。
换句话说,目标是查看相反文件中没有的内容,因为这些条目将被手动键入到产品后台的两个不同类别的产品中,以便它们最终匹配/相同。
说我有两个文件。file1.txt和file2.txt
这两个文件都包含鞋品牌名称(超过1000个名称)的列表,如下所示:
品牌1品牌2品牌3品牌...
现在-我想将file1与file2进行比较,删除所有重复出现的条目,仅向我显示file1中的内容(不在file2中),反之亦然。
换句话说,目标是查看相反文件中没有的内容,因为这些条目将被手动键入到产品后台的两个不同类别的产品中,以便它们最终匹配/相同。
Answers:
Notepad ++的插件“ Compare”会达到目的吗?
您可以从记事本++插件菜单中安装它=>插件管理器=>比较1.5.6
这是官方说明:一个非常有用的diff插件,用于显示2个文件(并排)之间的差异。作者:Ty Landercasper,现在由Jean-Sebastien Leroy进行维护和更新来源:http : //sourceforge.net/projects/npp-plugins/files/ComparePlugin/Compare_1_5_5_src.zip/download
一个老问题,但是...
补丁既有变化,也有额外的标记。在记事本++中,执行以下替换:
Search Mode: Regular Expression
Find What: ^[0-9-].*$
Replace With: <blank>
Replace All
。
Search Mode: Regular Expression
Find What: (<|>)
Replace With: <blank>
Replace All
有点麻烦,但我还没有找到可以一键完成此操作的工具。
要在notepad ++中减去两个文件(文件1-文件2),您可以按照以下步骤操作:
----------------------------
作为页脚文件1上(至少新增10个破折号)。这是将file1内容与file2分开的标记线。(?m)^\b(.*)\R(?=[\s\S]+-{10,}$[\s\S]+^\1\R)
(leave empty)
Regular expression
单选按钮如果file1 / file2的行数可能等于标记,则可以修改标记。在这种情况下,您将不得不调整正则表达式。
顺便说一句,您甚至可以记录一个宏来执行所有步骤(添加标记,切换到file2,将内容复制到file1,应用正则表达式,甚至在减去后清除数据),只需按一下按钮即可。
如果您可以使用Unix,则可以尝试使用以下简单命令的简单组合:tr,排序和通讯。
首先,将文件从水平分隔转换为垂直分隔:
tr '[:blank:]' '\n' < file1.txt > /tmp/file1.vertical
tr '[:blank:]' '\n' < file2.txt > /tmp/file2.vertical
然后对文件进行排序:
sort /tmp/file1.vertical > /tmp/file1.sorted
sort /tmp/file2.vertical > /tmp/file2.sorted
现在您可以看到file1中的内容,而不是file2中的内容
comm -23 /tmp/file1.sorted /tmp/file2.sorted
或查看file2中没有的内容
comm -13 /tmp/file1.sorted /tmp/file2.sorted
如果要以与开始时相同的水平格式输出,可以执行以下操作:
comm -23 /tmp/file1.sorted /tmp/file2.sorted | tr '\n' ' '
comm -13 /tmp/file1.sorted /tmp/file2.sorted | tr '\n' ' '
完成后,您可以删除创建的临时文件:
rm /tmp/file1.vertical /tmp/file2.vertical /tmp/file1.sorted /tmp/file2.sorted