![]() |
|
|
Google unix.com
|
|||||||
| Форумы | Регистрация | Правила форума | Ссылки | Альбомы | ЧАВО | Список участников | Календарь | Поиск | Сегодняшние сообщения | Отметить форумы читать |
| Shell программирование и сценарии Почтовые вопросы о KSH, CSH, SH, BASH, Perl, PHP, SED, AWK и скрипты оболочки и оболочки скриптовых языков здесь. |
Подробнее UNIX и Linux Темы форума можно найти полезные
|
||||
| Нить | Резьба для начинающих | Форум | Ответы | Последнее сообщение |
| Вставить командование не присоединяются моего производства | jplayermx | Shell программирование и сценарии | 4 | 09-05-2008 03:03 PM |
| Выравнивание текста из файла. | earlepps | UNIX для чайников Вопросы И Ответы | 9 | 08-01-2006 09:37 AM |
| присоединяются несколько полей и заполнения пространств с нулевой | DebianJ | Shell программирование и сценарии | 2 | 11-23-2005 07:51 AM |
| Как привести в докладе заголовки AWK | galinaqt | Shell программирование и сценарии | 3 | 10-16-2005 04:41 PM |
| Как подчеркивают / смелых и, как согласовать выходных | клара | UNIX для чайников Вопросы И Ответы | 1 | 06-16-2005 01:41 PM |
![]() |
|
|
LinkBack | Резьба Инструменты | Искать в этом Thread | Оценить Thread | Режимы дисплея |
|
|
|
||||
|
Для выравнивания клинических данных, используя AWK
Привет, я новичок в сценариях оболочки и 1-я неделя в AWK. До сих пор я сумел файлы формата в образец файла 1 и 2 файла, как показано ниже, и выходного файла 3 решения это то, что я ищу ... спасибо
Файл 1: 0633-009_001200008: 225065338468009: CMBRTRM: альбутерол 0633-009_001200008: 225065338468009: CMCLAS1: дыхательная система 0633-009_001200008: 225065338468009: CMCLAS2: медикаменты для обструктивного 0633-009_001200008: 225065338468009: CMCLAS3: adrenergics 0633-009_001200009: 225065338468008: CMBRTRM: альбутерол 0633-009_001200009: 225065338468008: CMCLAS1: дыхательная система 0633-009_001200009: 225065338468008: CMCLAS2: медикаменты для обструктивного 0633-009_001200009: 225065338468008: CMCLSCD3: R03C Файл 2: USUBJID | CMSEQ | CMBRTRM | CMCLAS1 | CMCLAS2 | CMCLAS3 | CMCLSCD1 | CMCLSCD2 | CMCLSCD3 | CMROUTE | 0633-009_001200008 | 225065338468009 0633-009_001200009 | 225065338468008 Необходимость выходного файла 3 при условиях: Файл 1's Field 4 значения (seprated словом ":" Например альбутерол) дописывает в файл 2, Поле 3 значением 1 файлов (например CMBRTM) равняется 2 заголовке файла по separeted | (например | CMBRTM |) и для этой строки вставка файла 2 на местах 1 и 2 области значений равна 1 файла на местах 1 и 2 значениях Из положил 3 файла: USUBJID | CMSEQ | CMBRTRM | CMCLAS1 | CMCLAS2 | CMCLAS3 | CMCLSCD1 | CMCLSCD2 | CMCLSCD3 | CMROUTE | 633-009_001200008 | 225065338468009 | альбутерол | respiratorysystem | препараты для обструктивного | adrenergics ||||| 0633-009_001200009 | 225065338468008 | альбутерол | дыхательной системы | лекарств для обструктивного | | | | R03C | | |
|
||||
|
Так что у вас с AWK?
|
|
||||
|
До сих пор в моем скромном работы ..... Код:
# For File 2, 1st I tried to create unique values from File 1's column 3
# and transpose those values as headers for File 2
awk -F":" '{print $3}' File1.txt | sort | uniq > tst.txt
# for each row of distinct 3rd column values of File 1 , create a file with column headers ( for now hard code first two columns USUBJID and CMSEQ)
awk -F "/n" '
BEGIN {OFS= "|"}
{
for (i=1;i<=NF;i++)
{arr[NR,i]=$i;}
}
END {
printf("USUBJID|CMSEQ|");
for(i=1;i<=NF;i++)
{
for(j=1;j<=NR;j++)
{printf("%s|",arr[j,i]);}
printf("\n");
}
}' tst.txt > temp1.txt
cp temp1.txt File2.txt
# each 1st and 2nd record in File1.txt file , needs to create a distinct row in File2.txt for 1st and 2nd columns usubjid|cmseq combo
awk -F':' '
{
SEQ[$1,"|",$2] = SEQ[$1,"|",$2];
}
END {
for (i in SEQ)
print i;
}' File1.txt >> File2.txt
Теперь я знаю, мои колонки в 2 файла, я знаю, мои номера строк в файл 2 из Файл 1, Мне нужно обрабатывать Cloumn 4 из файла 1 и вставить в файл 2, мышление -> Мне нужно таким образом, чтобы строка для каждого значения в колонке 4 файлов 1 seprated символом "|" и что будет добавить строку для каждой строки файла 2, основанных на: Нужно выяснить, уникальный для каждого столбца 1 и столбце 2 в сочетании Файл 1 , Мне нужно выбрать колонку 4 ценности и добавить рядом с нужным строку в файл 2 и когда я делаю это строка значения с 4 колонки к колонке 3 файла 1 должно соответствовать заголовка файла порядка 2 Я надеюсь, не сделать мои объяснения сложных :-( Последний раз редактировалось chowdhut; на 05-28-2009 04:22 PM.. |
|
||||
|
Я прогресс, и на этом этапе мне нужна помощь, чтобы разобраться, почему космический цикл KSH переменная не декодировать в AWK, а внутренний цикл делает. Ниже моего кода,
Если я жесткий переменным кодом "SUBSEQ" в AWK он работает, но если я попытаюсь передать SUBSEQ от KSH, она не имеет и, когда я еду в переменной 'ДН' из KSH это работает: у меня есть все файлы ниже. Мне нужна помощь таким кодом дает выход, если я раскомментировать строку # SUBSEQ \u003d "$ югу", и закомментировать в hardcode SUBSEQ \u003d "0633-009_001200008 | 225065338468009"; Почему не следует, если блок не оценку SUBSEQ если (Arr [J, 1] \u003d\u003d SUBSEQ & & & & Arr [J, 2] \u003d\u003d ДН) #! / бен / KSH # Читать темы и последовательность установка А subseq_array $ (<subseq.txt) # Прочитать применимые QVALS для того, чтобы исследования (может быть из определения) установка qnam_array $ (<qnam.txt) к югу в $ (subseq_array [@]) делать для N в $ (qnam_array [@]) делать # $ югу печати; `AWK-F ':' 'BEGIN () ( ( # SUBSEQ \u003d "$ подпункту"; SUBSEQ \u003d "0633-009_001200008 | 225065338468009"; NAM \u003d "$ N"; NULL \u003d "|"; ) для (i \u003d 1; I <\u003d Н.Ф.; I + +) ( обр [NR, I] \u003d $ I; ) ) END ( для (J \u003d 1; J <\u003d NR; J + +) ( если (обр [J, 1] \u003d\u003d SUBSEQ И И обр [J, 2] \u003d\u003d ДН) ( (printf ( "% S |", обр [J, 3]);) Exit;) ) для (J \u003d 1; J <\u003d NR; J + +) ( если (обр [J, 1] \u003d\u003d SUBSEQ И И обр [J, 2]! \u003d ДН) ( (printf ( "% S", NULL);) Exit;) ) ) 'Supp_q.txt>> out1.txt ` готово Версия для печати $ SUB>> out1.txt брейк; готово Файлы: subseq.txt \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d 0633-009_001200008 | 225065338468009 0633-009_001200008 | 225065338468010 0633-009_001200009 | 225065338468008 0633-009_001200018 | 225065338468009 0633-009_001200018 | 225065338468011 qnam.txt \u003d\u003d\u003d\u003d\u003d\u003d\u003d CMBRTRM CMCLAS1 CMCLAS2 CMCLAS3 CMCLSCD1 CMCLSCD2 CMCLSCD3 CMROUTE исходный файл, который я читаю с supp_q.txt \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d 0633-009_001200008 | 225065338468009: CMBRTRM: albuterol 0633-009_001200008 | 225065338468009: CMCLAS1: дыхательная система 0633-009_001200008 | 225065338468009: CMCLAS2: препараты для обструктивных заболеваниях дыхательных путей 0633-009_001200008 | 225065338468009: CMCLAS3: adrenergics для системного применения 0633-009_001200008 | 225065338468009: CMCLSCD1: R 0633-009_001200008 | 225065338468009: CMCLSCD2: R03 0633-009_001200008 | 225065338468009: CMCLSCD3: R03C 0633-009_001200008 | 225065338468010: CMCLSCD2: R03 0633-009_001200008 | 225065338468010: CMCLSCD3: R03C 0633-009_001200009 | 225065338468008: CMBRTRM: albuterol 0633-009_001200009 | 225065338468008: CMCLAS1: дыхательная система 0633-009_001200009 | 225065338468008: CMCLAS2: препараты для обструктивных заболеваниях дыхательных путей 0633-009_001200009 | 225065338468008: CMCLSCD3: R03C 0633-009_001200018 | 225065338468009: CMCLAS2: препараты для обструктивных заболеваниях дыхательных путей 0633-009_001200018 | 225065338468011: CMROUTE: RESPIR первоначальный вывод файлов, которые я пишу на с AWK: \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d CMBRTRM | CMCLAS1 | CMCLAS2 | CMCLAS3 | CMCLSCD1 | CMCLSCD2 | CMCLSCD3 | CMROUTE | USUBJID | CMSEQ | то, что выход должен быть: \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d CMBRTRM | CMCLAS1 | CMCLAS2 | CMCLAS3 | CMCLSCD1 | CMCLSCD2 | CMCLSCD3 | CMROUTE | USUBJID | CMSEQ | albuterol | дыхательной системы | лекарств для обструктивных заболеваниях дыхательных путей | adrenergics для системного применения | Р | R03 | R03C | | 0633-009_001200008 | 225065338468009 Последняя редакция chowdhut; на 06-18-2009 05:05 PM.. |
![]() |
| Закладки |
| Резьба Инструменты | Искать в этом Thread |
| Режимы дисплея | Оценить эту ветку |
|
|