2016-08-15 2 views
-3

У меня есть довольно сложная манипуляция с файлами, которую мне нужно выполнить, но я довольно плохо разбираюсь в кодировании, и я сразу же смущен тем, с чего начать. Любая помощь будет потрясающей, так что спасибо заранее. Предпочтительно в Shell или Python, поскольку они являются языками, которыми я владею беглым знанием, однако, если есть простое решение на другом языке, я открыт для него.Сложные манипуляции с файлами и текстами


У меня 2 массивных файлов с информацией, которая сопоставляет, однако они не выровнены с их колоннами, что делает его трудно соответствовать данным. Чтобы еще больше усложнить ситуацию, они имеют переменные значения после десятичной точки, хотя это представляют собой только значения до десятичной точки, которые представляют интерес.

Так что мне нужно сделать:

  • Read file1, column1, row1, но игнорировать все значения после десятичной точки.

  • Прочитать file2 и найти column1 для значения, полученного от file1, в то же время игнорируя то, что приходит после десятичной точки.

  • Как только корреляционное значение найдено в file2, выведите обе эти строки в новый файл (file3) с остальными данными из соответствующих строк.

Это первый шаг, и если кто-нибудь сможет мне помочь, я буду очень благодарен. Следующий шаг - применить цикл к этому процессу, чтобы он переместился на file1, line2 и повторил процесс.

+0

Вместо того, чтобы быть снисходительным, вы можете легко предложить начальное место. Трудно использовать учебники, когда вы не знаете, что вы даже делаете. Спасибо за то, что так полезно. – Vlad

+1

@ Vlad: Я предлагаю ** не ** делать это в Shell. Я лично напишу его в Ruby, но это только мои личные предпочтения. Python или Perl могут делать это одинаково хорошо. – user1934428

ответ

1

Вам нужно будет изучить Python лучше, чем вы его знаете сейчас. Вот схема, что вам нужно будет сделать. Это очень типично для такого рода «манипулирования файлами».

  1. сделать регулярное выражение, которое будет соответствовать линии от file1 и file2 (или два регулярных выражения, если файлы не имеют такой же формат). Включите в свое регулярное выражение синтаксис, чтобы захватить группы, которые важны для вас.
  2. Прочитано file1 Строка за строкой.
  3. Поскольку каждая строка читается, сопоставляйте ее с вашим регулярным выражением, найдите важные группы и сохраните их в хеше.
  4. Теперь читайте file2 по строкам.
  5. Поскольку каждая строка читается, сопоставляйте ее с вашим регулярным выражением, найдите важные группы и найдите хэш для соответствия.
  6. Когда вы найдете матч, выведите на file3
  7. Вернитесь к 4 и повторите.
Смежные вопросы