比较Perl

时间:2016-01-07 05:36:19

标签: perl

我有两个带空格分隔列的文件。我希望以下列方式对它们进行比较。

FILE1.TXT:

prduct-name sub-prod price
==========================
xxxxx       a1         12
xxxxx       a2         12
yyyyy       b1         13

FILE2.TXT:

prduct-name sub-prod price
==========================
xxxxx       a1         12
xxxxx       x2         12
yyyyy       b1         13

我想比较并报告哪个产品名称&它的子产品和价格与其他文件不匹配:

我是Perl的新手。请帮帮我。

2 个答案:

答案 0 :(得分:3)

好的,你到底遇到了什么麻烦?

  1. 打开其中一个文件
  2. 跳过标题行
  3. 对于文件中的每一行
  4. 将该行拆分为三个字段
  5. 将数据存储在哈希(键入产品名称)
  6. 如果有更多行,请转到3。
  7. 打开其他文件
  8. 跳过标题行
  9. 对于文件中的每一行
  10. 将该行拆分为三个字段
  11. 在哈希值中查找产品名称
  12. 如果缺少,则显示警告
  13. 如果有,请检查其他两个值
  14. 如果不同,则显示警告
  15. 如果文件中有更多行,请转到9
  16. 将其转换为Perl,您已完成: - )

答案 1 :(得分:0)

grep -vf<(perl -ne'if(($ seen {$ }。= @ARGV)=〜/ 10 $ /){print $ }'file1.txt file2。 txt)file2.txt

(此命令将输出file2.txt中file1.txt中没有完全匹配的所有条目)

用于从file1.txt中查找条目,反转上述命令中的文件名,即 grep -vf<(perl -ne'if(($ seen {$ }。= @ARGV)=〜/ 10 $ /){print $ }'file1.txt file2.txt)file1 .TXT