2016-01-07 5 views
-6

У меня есть два файла с разделителями с пробелами. Я хочу сравнить их следующим образом.Сравнение столбцов в двух файлах в 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 

Я хотел бы сравнить и доклад, в котором Prduct имя & его суб-прод & цена не соответствует друг с другом файлами :

Я очень новичок в Perl. Пожалуйста, помогите мне.

+2

Будучи новым для Perl, автоматически не означает, что люди будут выполнять ваши задания для вас. Пожалуйста, возьмите [тур] из [so] и узнайте [задайте] хорошие вопросы. –

+1

Взгляните на http://learn.perl.org/ –

ответ

3

Хорошо, где именно у вас проблемы?

  1. открыть один из файлов
  2. пропустить мимо строк заголовка
  3. Для каждой строки в файле
  4. Split линия на три поля
  5. хранить данные в хэш (ключом на название продукта)
  6. Если больше строк, Гото 3.
  7. Открыть другой файл
  8. Пропустить мимо заголовков строк
  9. Для каждой строки в файле
  10. Split линия на три поля
  11. Посмотрите на название продукта в вашей хэш
  12. Если он отсутствует, отображается предупреждение
  13. Если она есть, проверьте другие два значения
  14. Если они различны, отображают предупреждение
  15. Если есть еще строки в файле, Гото 9

Перевести, что Perl и вы сделали :-)

0

Grep -vf < (Perl -ne «, если (($ видели {$ }. = @ARGV) = ~/10 $ /) {печать $}»file1.txt file2.txt) file2.txt

(эта команда будет выводить все элементы file2.txt, которые не имеют точного соответствия в file1.txt)

для поиска записей из file1.txt переименуйте имена файлов в приведенной выше команде, т.е. grep -vf < (perl -ne 'if (($ seen {$ }. = @ARGV) = ~/10 $ /) {print $}' file1. T xt file2.txt) file1.txt

Смежные вопросы