Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/xxlabaza/csv-merger-groovy
Groovy implementation of csv merger
https://github.com/xxlabaza/csv-merger-groovy
Last synced: 14 days ago
JSON representation
Groovy implementation of csv merger
- Host: GitHub
- URL: https://github.com/xxlabaza/csv-merger-groovy
- Owner: xxlabaza
- License: apache-2.0
- Created: 2016-02-02T17:06:30.000Z (almost 9 years ago)
- Default Branch: master
- Last Pushed: 2016-02-02T17:21:57.000Z (almost 9 years ago)
- Last Synced: 2023-03-01T14:32:15.312Z (over 1 year ago)
- Language: Groovy
- Size: 6.84 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Описание #
Это скетч/набросок программы по решению задачи описанной [здесь](https://github.com/joesephz/interns-test/wiki), выполненный мной сразу после окончания собеседования и написанный на языке **Groovy**.
Смысл содеянного в следующем - что бы не создавать в памяти программы лишние структуры данных, при чтении исходных файлов, было принято волевое решение, в ходе которого каждый исходный файл парсится построчно, на основе ключа записи в файле создаётся папка в **./tmp** и в неё кладётся файл, имя которого строится следующим образом:
**имя файла** = **префикс** (уникальный для каждого файла) + **значение ключа**
на основе получившейся файловой структуры можно пробежаться по папкам и, проанализировав их содержимое, создать результирующий файл.
пример работы:
```bash
$> groovy csv_merger.groovy
$> tree tmp/
tmp/
├── 000000000
│ └── A-EL5J-X97W-YRS3
├── 000000001
│ ├── A-4DG1-WUX0-F16B
│ └── B-RLT0-DFHH-1U5U
├── 000000002
│ └── A-P985-U0EX-02QH
├── 000000004
│ └── B-289H-D3WD-U518
├── 000000007
│ └── A-42RY-ES7U-GM6Y
├── 000000009
│ └── A-QL9S-E3DJ-35OH
├── 000000011
│ ├── A-EKH3-5IDH-DNUK
│ └── B-NW8U-C0IQ-WWKV
├── 000000012
│ ├── A-DS9X-1N3P-KIAW
│ ├── B-M3LF-XPWB-8NI6
│ └── B-ZPMK-N3BU-C33D
├── 000000014
│ ├── B-17CN-JCX5-CRJR
│ └── B-NRYG-HFFS-FDS8
└── 000000015
├── A-UJ8E-G1IV-U9PS
└── B-Q0Z1-4JN9-PS7U10 directories, 16 files
$> cat result.csv
000000001,4DG1-WUX0-F16B,RLT0-DFHH-1U5U
000000011,EKH3-5IDH-DNUK,NW8U-C0IQ-WWKV
000000012,DS9X-1N3P-KIAW,M3LF-XPWB-8NI6
000000012,DS9X-1N3P-KIAW,ZPMK-N3BU-C33D
000000015,UJ8E-G1IV-U9PS,Q0Z1-4JN9-PS7U
```