The UNIX and Linux Forums  
Ciao e benvenuto da parte degli Stati Uniti al UNIX e Linux Forum! Grazie per la visita ed unirsi alla nostra Comunità Globale.

Go Back   UNIX e Linux Forum > Inizio Forum > Shell scripting e di programmazione
.
google unix.com



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.

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 02:03 PM
Allineare il testo da un file. earlepps UNIX for Dummies Domande & Risposte 9 08-01-2006 08: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 03:41 PM
Come sottolineano / grassetto e le modalità per allineare la produzione clara UNIX for Dummies Domande & Risposte 1 06-16-2005 12: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 Tools Cerca in questo Thread Rate Thread Modalità di visualizzazione
  #1 (permalink)  
Old 05-27-2009
chowdhut chowdhut is offline
Utente Registrato
  
 

Iscriviti Data: maggio 2009
Ubicazione: CT, Stati Uniti d'America
Interventi: 4
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 | |
  #2 (permalink)  
Old 05-27-2009
ghostdog74 ghostdog74 is offline Forum Advisor  
Utente Registrato
  
 

Join Date: Sep 2006
Interventi: 2.521
Che cosa hai con awk?
  #3 (permalink)  
Old 05-28-2009
chowdhut chowdhut is offline
Utente Registrato
  
 

Iscriviti Data: maggio 2009
Ubicazione: CT, Stati Uniti d'America
Interventi: 4
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.txt

Ora 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 03:22 PM..
  #4 (permalink)  
Old 06-18-2009
chowdhut chowdhut is offline
Utente Registrato
  
 

Iscriviti Data: maggio 2009
Ubicazione: CT, Stati Uniti d'America
Interventi: 4
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 04:05 PM..
  #5 (permalink)  
Old 06-18-2009
vgersh99's Avatar
vgersh99 vgersh99 is online now Forum Staff  
Moderatore
  
 

Iscriviti Data: febbraio 2005
Località: Boston, MA
Messaggi: 5.121
Codice:
awk -F':' -v SUBSEQ="${sub}" -v NAM="${n}" '.....' myFileName
OR
awk -F':' '.....' SUBSEQ="${sub}" NAM="${n}" myFileName
Reply

Segnalibri

Thread Tools Cerca in questo Thread
Cerca in questo Thread:

Ricerca Avanzata
Modalità di visualizzazione Vota questo thread
Vota questo thread:

Distacco regolamento
Tu non può post nuovo thread
Tu non può inviare una risposta
Tu non può postare allegati
Tu non può modificare i tuoi post

BB codice è Su
Smilies sono Su
[IMG] codice Su
Codice HTML è Chiuso
Trackbacks sono Su
Pingbacks sono Su
Refbacks sono Su




Tutti gli orari sono GMT -4. La data di oggi è 03:10 PM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Traduzioni Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
UNIX e Linux Forum Content Copyright © 1993-2009. Tutti i diritti Reserved.Ad di gestione da RedTyger

Contenuti pertinenti URL da vBSEO 3.2.0