The UNIX and Linux Forums  


Go Back   В UNIX и Linux Форумы > Топ форумы > Shell программирование и сценарии
.
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

Reply
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered By Powered by Google
 
LinkBack Резьба Инструменты Искать в этом Thread Оценить Thread Режимы дисплея
Old 05-27-2009
chowdhut chowdhut is offline
Зарегистрированный пользователь
  
 

Регистрация: Май 2009
Место проведения: Коннектикут, США
Сообщений: 4
Для выравнивания клинических данных, используя 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 | |
Old 05-27-2009
ghostdog74 ghostdog74 is offline Forum Advisor  
Зарегистрированный пользователь
  
 

Регистрация: Sep 2006
Сообщений: 2557
Так что у вас с AWK?
Old 05-28-2009
chowdhut chowdhut is offline
Зарегистрированный пользователь
  
 

Регистрация: Май 2009
Место проведения: Коннектикут, США
Сообщений: 4
До сих пор в моем скромном работы .....


Код:
# 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..
Old 06-18-2009
chowdhut chowdhut is offline
Зарегистрированный пользователь
  
 

Регистрация: Май 2009
Место проведения: Коннектикут, США
Сообщений: 4
Я прогресс, и на этом этапе мне нужна помощь, чтобы разобраться, почему космический цикл 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..
Old 06-18-2009
vgersh99's Avatar
vgersh99 vgersh99 is offline Forum Staff  
Модератор
  
 

Регистрация: Февраль 2005
Место: Boston, MA
Сообщения: 5131

Код:
awk -F':' -v SUBSEQ="${sub}" -v NAM="${n}" '.....' myFileName
OR
awk -F':' '.....' SUBSEQ="${sub}" NAM="${n}" myFileName

Reply

Закладки

Резьба Инструменты Искать в этом Thread
Искать в этом Thread:

Расширенный поиск
Режимы дисплея Оценить эту ветку
Оценить эту ветку:

Отправка Правила
Вы не может Начать новую нитей
Вы не может Почтовые ответы
Вы не может Почтовые вложения
Вы не может Редактировать Ваши сообщения

BB код быть На
Смайлики являемся На
[IMG] код На
HTML-код Вне
Trackbacks являемся На
Pingbacks являемся На
Refbacks являемся На




Часовой пояс GMT -4. Текущее время 12:21 PM.


Powered By: Справка, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Язык Переводы на питание от .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
В UNIX и Linux форумы Содержание Copyright © 1993-2009. Все права Reserved.Ad управления по RedTyger

Содержание соответствующие URL-адреса в vBSEO 3.2.0