Я имею следующий 2 архива текста (при их колонки отделенные запятым) & мне нужно слить их. File2 имеет все значения ключей (ie первая колонка) file1 а обоих архивов не сортируйте. Настолько все ключи (колонка ie 1-ого) внутри file1 будет подсовокупностью ключей ых в file2.
file1: INC00023233, текст описания 1, field 1 текст, ....., field 1 текст INC00023132, текст описания 2, field текст 2, ....., field текст 2 INC00023073, текст описания 3, field текст 3, ....., field текст 3 INC00023573, текст описания 4, field текст 4, ....., field текст 4 ........
file2: INC00011312, fieldA даты начала, fieldA даты конца ...... INC00023233, fieldB даты начала, fieldB даты конца PBI00023232, fieldC даты начала, fieldC даты конца ...... INC00023073, fieldD даты начала, fieldD даты конца ...... INC00023132, fieldE даты начала, fieldE даты конца ..... INC00023573, fieldF даты начала, fieldF даты конца .....
Я хотел был бы слить вышеуказанные 2 архива такие что возникающий слитый архив csv следующим образом: INC00023233, текст описания 1, field 1 текст, ....., field 1 текст, fieldB даты начала, fieldB даты конца INC00023132, текст описания 2, field текст 2, ....., field 2 текст, fieldE даты начала, fieldE даты конца INC00023073, текст описания 3, field текст 3, ....., field 3 текст, fieldD даты начала, fieldD даты конца INC00023573, текст описания 4, field текст 4, ....., field 4 текст, fieldF даты начала, fieldF даты конца ….
UNIX, котор я бегу будет Redhat 4 но я имею HP-UX B11.11 (переводчик Perl внутри серверы а я Redhat не слишком уверенн о серверах HP-UX), так сценарий при условии потребность мочь побежать на тех платформах
|
Предполагают никакие запятые в различных описании полей т.е., etc. не вклюают запятые.
Более просто метод мог должны быть использовать mysql и нагружать первый архив и после этого выдавать уточнения с данными от второго архива.
Вы можете хранить выход в архиве и нагружать он. В этот случай сделайте конечно для того чтобы добавить #! /usr/local/bin/perl вверху архив и 1; в конце выходного файла поэтому вас не получите ошибки когда вы требуете архива где хранится хэш.
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
|
#! /usr/local/bin/perl
$file1= " курс к filename1 ";
мое $hash= {};
раскройте (File1, ")<> {
chomp ();
@array=split (/,/, $_);
#The ниже строит снабженный ссылками хэш hashes
$hash-> {$array [0]} {«существует»} =1;
$hash-> {$array [0]} {«испытание описания 1»} =$array [1];
$hash-> {$array [0]} {«испытание поля 1»} =$array [2];
$hash-> {$array [0]} {«испытание поля 2»} =$array [3];
.
.
.
}
#done с обрабатывать file1.
конец (File1);
раскройте (File2, ")<> {
chomp ();
@array=split (/,/, $_);
если (существует $hash-> {$array [0]} {«существует»} и $hash-> {$array [0]} {«существует»} ==1) {, то
$hash-> {$array [0]} {«первое поле от второго архива»} =$array [1];
$hash-> {$array [0]} {«второе поле»} =$array [2];
$hash-> {$array [0]} {«третье поле»} =$array [3];
.
.
.
.
}
}
#done с обрабатывать хранит когда сопрягают ключей.
конец (File2);
#you теперь имеет $hash справка к hashes.
foreach $key (ключи % {$hash}) {
# печать «$key: $hash->} {$key \ n»;
foreach $index (ключи % {$hash-> {$key}}) {
печать «\ $hash-> {«$key»} {«$index»} =$hash-> {$key}} {$index \ n»;
}
}
|
|