|
|
|
|
Google Site
|
|||||||
| Forum | Registrati | Blog | Man Pages | Regole Forum | Collegamenti | Album | FAQ | Utenti | Calendario | Ricerca | Today's Posts | Mark Forums Read |
| Shell scripting e di programmazione Pubblica domande su KSH, CSH, SH, Bash, Perl, PHP, sed, awk e da altri script di shell e linguaggi di scripting shell qui. |
![]() |
|
|
Thread Tools | Cerca in questo Thread | Rate Thread | Modalità di visualizzazione |
|
|||
|
Per allineare i dati clinici di file tramite awk
Ciao, io sono nuovo script di shell e 1 settimana in awk. Io sono riuscito finora a file di output in formato di file di esempio 1 e File 2, come illustrato di seguito e File 3 soluzione di uscita è quello che sto cercando ... grazie
File 1: 0633-009_001200008: 225.065.338.468.009: CMBRTRM: albuterol 0633-009_001200008: 225.065.338.468.009: CMCLAS1: sistema respiratorio 0633-009_001200008: 225.065.338.468.009: CMCLAS2: farmaci per ostruttiva 0633-009_001200008: 225.065.338.468.009: CMCLAS3: adrenergici 0633-009_001200009: 225.065.338.468.008: CMBRTRM: albuterol 0633-009_001200009: 225.065.338.468.008: CMCLAS1: sistema respiratorio 0633-009_001200009: 225.065.338.468.008: CMCLAS2: farmaci per ostruttiva 0633-009_001200009: 225.065.338.468.008: CMCLSCD3: R03C Fascicolo 2: USUBJID | CMSEQ | CMBRTRM | CMCLAS1 | CMCLAS2 | CMCLAS3 | CMCLSCD1 | CMCLSCD2 | CMCLSCD3 | CMROUTE | 0633-009_001200008 | 225065338468009 0633-009_001200009 | 225065338468008 Bisogno del file di output con 3 condizioni: File 1's Field 4 valori (seprated da ":" per esempio albuterol) aggiunge al file da 2 Campo 3 del valore di 1 file (per esempio CMBRTM) è uguale a 2 file di intestazione separato da | (per esempio | CMBRTM |) e per quella fila di inserire File 2 di campo 1 e campo 2 valori è pari a 1 File di campo 1 e 2 valori Out put file 3: USUBJID | CMSEQ | CMBRTRM | CMCLAS1 | CMCLAS2 | CMCLAS3 | CMCLSCD1 | CMCLSCD2 | CMCLSCD3 | CMROUTE | 633-009_001200008 | 225.065.338.468.009 | albuterol | respiratorysystem | farmaci per ostruttiva | adrenergici ||||| 0633-009_001200009 | 225.065.338.468.008 | albuterol | vie respiratorie | farmaci per ostruttiva | | | | R03C | | |
| Sponsored Links | ||
|
|
|
|||
|
Finora nella mia umile lavoro ..... Codice:
# 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.txtOra so che il mio colonne in File 2, so che il mio numero di righe in file da 2 file 1, Ho bisogno di un processo Cloumn 4 da file 1 e incollare in File 2, il pensiero -> Ho bisogno di un modo di formare una stringa per ogni valori riportati nella colonna 4 del Fascicolo 1 seprated da '|' e che la stringa si aggiunge per ogni linea di File 2 basata su: Necessità di capire per ogni colonna unica 1 e colonna 2, in combinazione File 1 , Ho bisogno di scegliere la colonna 4 valori e aggiungere accanto alla riga applicabile in File 2 e quando lo faccio i valori stringa con la colonna 4 per la colonna 3 del File 1 deve corrispondere l'ordine di intestazione del file 2 Spero di non sto facendo la mia spiegazione :-( complicata Last edited by chowdhut; 05-28-2009 at 04:22 PM.. |
|
|||
|
Ho fatto progressi e in questa fase ho bisogno di aiuto per capire perché un ciclo for esterno variabile KSH non decodifica in AWK ma ciclo for interno fa. Qui di seguito è il mio codice,
Se mi variabile codice duro 'SUBSEQ' in AWK funziona, ma se cerco di passare il SUBSEQ da KSH, esso non e quando passare la variabile 'NAM' da KSH funziona: ho tutti i file qui sotto. Ho bisogno di aiuto per il codice dà in uscita se il commento della linea # SUBSEQ \u003d " '$ sub'"; e commentare le hardcode SUBSEQ \u003d "0633-009_001200008 | 225065338468009"; Perché non seguire il blocco if non valuta SUBSEQ if (arr [j, 1] \u003d\u003d SUBSEQ & & & & arr [j, 2] \u003d\u003d NAM) #! / bin / ksh # Leggere soggetto e la sequenza Un set-subseq_array $ (<subseq.txt) # Legge applicabile QVALS Ordina per lo studio (può essere da definire) set-A qnam_array $ (<qnam.txt) per la sottorubrica in $ (subseq_array [@]) fare per n in $ (qnam_array [@]) fare # print $ sub; `awk-F ':' 'BEGIN () ( ( # SUBSEQ \u003d " '$ sub'"; SUBSEQ \u003d "0633-009_001200008 | 225065338468009"; NAM \u003d " '$ n'"; NULL \u003d "|"; ) for (i \u003d 1; i <\u003d NF; i + +) ( arr [NR, i] \u003d $ i; ) ) END ( for (j \u003d 1; j <\u003d NR; j + +) ( if (arr [j, 1] \u003d\u003d SUBSEQ & & arr [j, 2] \u003d\u003d NAM) ( (printf ( "% s |", arr [j, 3]);) exit;) ) for (j \u003d 1; j <\u003d NR; j + +) ( if (arr [j, 1] \u003d\u003d SUBSEQ & & arr [j, 2]! \u003d NAM) ( (printf ( "% s", NULL);) exit;) ) ) 'Supp_q.txt>> out1.txt » fatto print $ sub>> out1.txt break; fatto I file: 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 file di origine che sono da leggere supp_q.txt \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d 0633-009_001200008 | 225065338468009: CMBRTRM: albuterol 0633-009_001200008 | 225065338468009: CMCLAS1: sistema respiratorio 0633-009_001200008 | 225065338468009: CMCLAS2: farmaci per le malattie ostruttive delle vie respiratorie 0633-009_001200008 | 225065338468009: CMCLAS3: adrenergics per uso sistemico 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: sistema respiratorio 0633-009_001200009 | 225065338468008: CMCLAS2: farmaci per le malattie ostruttive delle vie respiratorie 0633-009_001200009 | 225065338468008: CMCLSCD3: R03C 0633-009_001200018 | 225065338468009: CMCLAS2: farmaci per le malattie ostruttive delle vie respiratorie 0633-009_001200018 | 225065338468011: CMROUTE: Respir iniziale del file che sto scrivendo a AWK da: \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d CMBRTRM | CMCLAS1 | CMCLAS2 | CMCLAS3 | CMCLSCD1 | CMCLSCD2 | CMCLSCD3 | CMROUTE | USUBJID | CMSEQ | ciò che l'output deve essere: \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 | sistema respiratorio | farmaci per le malattie ostruttive delle vie respiratorie | adrenergics per uso sistemico | R | R03 | R03C | | 0633-009_001200008 | 225065338468009 Last edited by chowdhut; 06-18-2009 at 05:05 PM.. |
![]() |
| Segnalibri |
| Thread Tools | Cerca in questo Thread |
| Modalità di visualizzazione | Vota questo thread |
|
|
Più di UNIX e Linux Forum Argomenti potreste trovare utili
|
||||
| Filo | Thread Starter | Forum | Risposte | Ultimo Post |
| Incolla Comando non allineare la mia uscita | jplayermx | Shell scripting e di programmazione | 4 | 09-05-2008 03:03 PM |
| Allineare il testo da un file. | earlepps | UNIX for Dummies Domande & Risposte | 9 | 08-01-2006 09:37 AM |
| allineare più campi e riempire gli spazi con zero | DebianJ | Shell scripting e di programmazione | 2 | 11-23-2005 07:51 AM |
| come ad allineare le intestazioni in relazione awk | galinaqt | Shell scripting e di programmazione | 3 | 10-16-2005 04:41 PM |
| Come sottolineano / grassetto e le modalità per allineare la produzione | clara | UNIX for Dummies Domande & Risposte | 1 | 06-16-2005 01:41 PM |