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
Script di estrarre i dati errati da file di testo jermaine4ever Shell scripting e di programmazione 6 03-16-2009 12:18 PM
Incorretto NSI login? Juterassee SUN Solaris 5 10-30-2008 11:08 AM
login errato espace1000 UNIX for Dummies Domande & Risposte 2 08-22-2008 07:48 AM
Login errato sydney2008 Red Hat 6 08-22-2008 05:57 AM
Nome errato Directory jand102821 UNIX for Dummies Domande & Risposte 1 06-19-2002 05:35 PM

Closed Thread
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 04-21-2009
pinnacle pinnacle is offline
Utente Registrato
  
 

Iscriviti Data: aprile 2009
Interventi: 182
Awk dati errati.

Sto usando il seguente comando:

Codice:
nawk -F"," 'NR==FNR {a[$2$3]=$1;next} a[$2$3] {print a[$2$3],$1,$2,$3}'  file1 file2
Sono sempre 40 record di uscita.
Ma quando i importazione file1 e file2 in MS Access ottenere i 140 record.
E so che è corretto contare 140.

Apprezziamo il tuo aiuto a correggere lo script qui sopra
  #2 (permalink)  
Old 04-21-2009
vgersh99's Avatar
vgersh99 vgersh99 is offline Forum Staff  
Moderatore
  
 

Iscriviti Data: febbraio 2005
Località: Boston, MA
Messaggi: 5.122
Sarebbe sicuramente utile se si ha fornito una descrizione più dettagliata di ciò che stai cercando di raggiungere con il campione e file di dati i risultati attesi.

La mia sfera di cristallo è un po 'sfocata, ma:
Codice:
nawk -F"," 'NR==FNR {a[$2,$3]=$1;next} ($2 SUBSEP $3) in a {print a[$2,$3],$1,$2,$3}'  OFS=, file1 file2
  #3 (permalink)  
Old 04-21-2009
pinnacle pinnacle is offline
Utente Registrato
  
 

Iscriviti Data: aprile 2009
Interventi: 182
Citazione:
Originalmente inviato da vgersh99 View Post
Sarebbe sicuramente utile se si ha fornito una descrizione più dettagliata di ciò che stai cercando di raggiungere con il campione e file di dati i risultati attesi.

La mia sfera di cristallo è un po 'sfocata, ma:
Codice:
nawk -F"," 'NR==FNR {a[$2,$3]=$1;next} ($2 SUBSEP $3) in a {print a[$2,$3],$1,$2,$3}'  OFS=, file1 file2
vgersh99

Ho due file
$ Testa file1
zip, Nome, Cognome
07777, abc def
22584, dicembre, DLO
25487, xyz, jkl
25488, dim, kio

$ Testa file2
Scopo del server di database
SSN, Nome, Cognome
123456789, abc def
123456789, dicembre, DLO
123456789, xyz, jkl
123456789, dim, kio
voluto in uscita:
SSN, zip, FirstName, LastName

Codice:
nawk -F"," 'NR==FNR {a[$2,$3]=$1;next} ($2 SUBSEP $3) in a {print a[$2,$3],$1,$2,$3}'  OFS=,  " file2 file1
40 Matches
Codice:
nawk -F"," 'NR==FNR {a[$2,$3]=$1;next} ($2 SUBSEP $3) in a {print a[$2,$3],$1,$2,$3}'  OFS=,  " file1 file2
140 matches
140 partite è corretta, ma entrambi i know deve dare 140 i dont know why dare la sua differenza.

Può spiegare questa parte ($ 2 SUBSEP $ 3)
a [$ 2, $ 3] che stiamo utilizzando, è qui perché il suo input separati da virgole o è regola generale
Se i dont uso, quindi anche io sono sempre stesso risultato
  #4 (permalink)  
Old 04-21-2009
vgersh99's Avatar
vgersh99 vgersh99 is offline Forum Staff  
Moderatore
  
 

Iscriviti Data: febbraio 2005
Località: Boston, MA
Messaggi: 5.122
Citazione:
Originalmente inviato da zenith View Post
vgersh99

Ho due file
$ Testa file1
zip, Nome, Cognome
07777, abc def
22584, dicembre, DLO
25487, xyz, jkl
25488, dim, kio

$ Testa file2
Scopo del server di database
SSN, Nome, Cognome
123456789, abc def
123456789, dicembre, DLO
123456789, xyz, jkl
123456789, dim, kio
voluto in uscita:
SSN, zip, FirstName, LastName

Codice:
nawk -F"," 'NR==FNR {a[$2,$3]=$1;next} ($2 SUBSEP $3) in a {print a[$2,$3],$1,$2,$3}'  OFS=,  " file2 file1
40 Matches
Codice:
nawk -F"," 'NR==FNR {a[$2,$3]=$1;next} ($2 SUBSEP $3) in a {print a[$2,$3],$1,$2,$3}'  OFS=,  " file1 file2
140 matches
Le invocazioni di sopra del 2 sono esattamente gli stessi. Non capisco il motivo per cui stai ottenendo risultati diversi.
Inoltre non capisco il motivo per cui si dispone di un trailing doppia citazione (in rosso), in entrambi i casi?
Citazione:
Originalmente inviato da zenith
140 partite è corretta, ma entrambi i know deve dare 140 i dont know why dare la sua differenza.

Può spiegare questa parte ($ 2 SUBSEP $ 3)
a [$ 2, $ 3] che stiamo utilizzando, è qui perché il suo input separati da virgole o è regola generale
Se i dont uso, quindi anche io sono sempre stesso risultato
No, non è perché il tuo file è separato da virgola. Potete costruire il vostro indice solo da concatenare stringhe ($ 2 $ 3) o (che è meglio per l'ulteriore lavorazione) facendo presente:
Codice:
a[$2,$3]
Nel contesto della costruzione di indice, la "," è sostituito dal awk interno variabile SUBSEP. Se poi si decide di "dividere" l'indice (per trovare le parti) si può dividere da SUBSEP. Se avete semplicemente concatenare la stringa, non è possibile ricostruire l'indice ai suoi pezzi di ricambio originali.

La soluzione originariamente pubblicato dovrebbe darvi il risultato desiderato.
Dato file1:
Codice:
zip,FirstName,Lastname
07777,abc,def
22584,dec,dlo
25487,xyz,jkl
25488,dim,kio
e file2:
Codice:
SSN,Firstname,LastName
123456789,abc,def
123456789,dec,dlo
123456789,xyz,jkl
123456789,dim,kio
eseguendo:
Codice:
nawk -F, 'NR==FNR {a[$2,$3]=$1;next} ($2 SUBSEP $3) in a {print a[$2,$3],$1,$2,$3}'  OFS=, file2 file1
Risultati in:
Codice:
123456789,07777,abc,def
123456789,22584,dec,dlo
123456789,25487,xyz,jkl
123456789,25488,dim,kio
Controlla la tua file1 e file2 - vedere se ci sono eventuali discrepanze e / o spazi incorporati.

Inoltre, questo non è uno dei primi posti forum e hai stato chiesto in passato: si prega di utilizzare BB codice tag quando la pubblicazione di dati o esempi di codice.
  #5 (permalink)  
Old 04-21-2009
pinnacle pinnacle is offline
Utente Registrato
  
 

Iscriviti Data: aprile 2009
Interventi: 182
Citazione:
Originalmente inviato da vgersh99 View Post
Le invocazioni di sopra del 2 sono esattamente gli stessi. Non capisco il motivo per cui stai ottenendo risultati diversi.
Inoltre non capisco il motivo per cui si dispone di un trailing doppia citazione (in rosso), in entrambi i casi?

No, non è perché il tuo file è separato da virgola. Potete costruire il vostro indice solo da concatenare stringhe ($ 2 $ 3) o (che è meglio per l'ulteriore lavorazione) facendo presente:
Codice:
a[$2,$3]
Nel contesto della costruzione di indice, la "," è sostituito dal awk interno variabile SUBSEP. Se poi si decide di "dividere" l'indice (per trovare le parti) si può dividere da SUBSEP. Se avete semplicemente concatenare la stringa, non è possibile ricostruire l'indice ai suoi pezzi di ricambio originali.

La soluzione originariamente pubblicato dovrebbe darvi il risultato desiderato.
Dato file1:
Codice:
zip,FirstName,Lastname
07777,abc,def
22584,dec,dlo
25487,xyz,jkl
25488,dim,kio
e file2:
Codice:
SSN,Firstname,LastName
123456789,abc,def
123456789,dec,dlo
123456789,xyz,jkl
123456789,dim,kio
eseguendo:
Codice:
nawk -F, 'NR==FNR {a[$2,$3]=$1;next} ($2 SUBSEP $3) in a {print a[$2,$3],$1,$2,$3}'  OFS=, file2 file1
Risultati in:
Codice:
123456789,07777,abc,def
123456789,22584,dec,dlo
123456789,25487,xyz,jkl
123456789,25488,dim,kio
Controlla la tua file1 e file2 - vedere se ci sono eventuali discrepanze e / o spazi incorporati.

Inoltre, questo non è uno dei primi posti forum e hai stato chiesto in passato: si prega di utilizzare BB codice tag quando la pubblicazione di dati o esempi di codice.
Codice:
nawk -F"," 'NR==FNR {a[$2,$3]=$1;next} ($2 SUBSEP $3) in a {print a[$2,$3],$1,$2,$3}'  OFS=, file1 file2
Nel codice sopra, se i accendere il file1 e fie2 posizione quindi ottenere i risultati diversi.
Non riesco a postare il file a causa di dati sensibili.
Ho controllato visivamente i file e non vedere i caratteri speciali o niente.
C'è un comando speciale per verificare questo.

Apprezziamo la tua risposta.
  #6 (permalink)  
Old 04-22-2009
vgersh99's Avatar
vgersh99 vgersh99 is offline Forum Staff  
Moderatore
  
 

Iscriviti Data: febbraio 2005
Località: Boston, MA
Messaggi: 5.122
Citazione:
Originalmente inviato da zenith View Post
Codice:
nawk -F"," 'NR==FNR {a[$2,$3]=$1;next} ($2 SUBSEP $3) in a {print a[$2,$3],$1,$2,$3}'  OFS=, file1 file2
Nel codice sopra, se i accendere il file1 e fie2 posizione quindi ottenere i risultati diversi.
Non riesco a postare il file a causa di dati sensibili.
Ho controllato visivamente i file e non vedere i caratteri speciali o niente.
C'è un comando speciale per verificare questo.

Apprezziamo la tua risposta.
Paziente: Doc, però, si fa male quando faccio quello!
Dottore: Allora non fare quello!

Le posizioni dei file sulla riga di comando è importante per la mappatura dei campi da un file all'altro. Guardate i vostri file di dati 'campi - provare a vedere la differenza e guardare originale distacco per la mappatura logica.
Buona fortuna.
Closed Thread

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 è 12:17 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