![]() |
Ciao e benvenuto da parte degli Stati Uniti al UNIX e Linux Forum! Grazie per la visita ed unirsi alla nostra Comunità Globale.
|
|
google unix.com
|
|||||||
| Forum | Registrati | Regole Forum | Collegamenti | Album | FAQ | Members List | 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. |
Più di UNIX e Linux Forum Argomenti potreste trovare utili
|
||||
| Filo | Thread Starter | Forum | Risposte | Ultimo Post |
| Conversione dei file | gehlnar | Shell scripting e di programmazione | 4 | 04-17-2009 07:47 AM |
| File di conversione | sridhar_423 | Shell scripting e di programmazione | 2 | 03-16-2009 04:47 PM |
| Conversione dei file di ascii | mora | UNIX e avanzata per utenti esperti | 4 | 03-31-2008 12:29 PM |
| Xhtml utility di conversione file Postscript file | dattatray.b | SUN Solaris | 0 | 08-25-2005 06:36 AM |
| conversione dei file | hipo | UNIX for Dummies Domande & Risposte | 1 | 07-24-2001 09:24 PM |
![]() |
|
|
LinkBack | Thread Tools | Cerca in questo Thread | Rate Thread | Modalità di visualizzazione |
|
|
|
||||
|
Conversione dei file e awk
Hi Everyone,
Sono confuso con l'output del file di input e io sono qui di seguito utilizzando il comando in uno script per ottenere i risultati attesi. Inoltre vorrei aggiungere un'altra condizione utilizzando logico AND (& &) al posto di $ 2 \u003d\u003d "L" ($ 4 \u003d 0 - 4) $ di $ 2 \u003d\u003d "L" & & $ 3 \u003d\u003d "L" ($ 4 \u003d 0 - $ 4) ma io sono sempre alcuni awk errore. Per favore qualcuno può consigliare su questo per favore? Codice:
cat $FILENAME |grep "^PL"|tr -d '\015'|sort -k1,2|nawk -F'|' 'BEGIN {OFS="~"}$2=="L"{$4=0-$4};$6=="COM"?$6="SHS":$6="FMT";{arr[$1"~"$5"~"$6]+=$4} END {for (i in arr) {print i,arr[i]}}'>$TEMPFILE
Input File
============
ISIN|BL|STATUS|QTY|SNAME|CLASS
PLKGHM000017|B|L|85000|KGHM|COM
PLPKO0000016|B|L|310000|PKO S.A.|COM
|B|L|0||
PLKGHM000017|L|L|35000|KGHM|COM
PL0000101937|B|L|100000|DS1110|GOV
|L|L|0||
PLKGHM000017|L|L|40000|KGHM|COM
PLPKO0000016|L|L|290000|PKO S.A.|COM
Present Output
==============
PL0000101937~B~L~100000~DS1110~FMT
PLKGHM000017~B~L~85000~KGHM~SHS
PLKGHM000017~L~L~-35000~KGHM~SHS
PLKGHM000017~L~L~-40000~KGHM~SHS
PLPKO0000016~B~L~310000~PKO S.A.~SHS
PLPKO0000016~L~L~-290000~PKO S.A.~SHS
PLPKO0000016~PKO S.A.~SHS~20000
PL0000101937~DS1110~FMT~100000
PLKGHM000017~KGHM~SHS~10000
Expected Output
==============
PLPKO0000016~PKO S.A.~SHS~20000
PL0000101937~DS1110~FMT~100000
PLKGHM000017~KGHM~SHS~10000
|
|
||||
|
Citazione:
salute, Devaraj Takhellambam |
|
||||
|
Salve,
Questo è il risultato atteso. Previsto in uscita \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d PKO SA PLPKO0000016 ~ ~ ~ 20000 SHS PL0000101937 ~ ~ DS1110 FMT ~ 100000 PLKGHM000017 ~ ~ KGHM SHS ~ 10000 Ma se vedi il mio post originale Sono sempre presente, ma insieme ad alcuni altri record. Per favore fatemi sapere se avete ulteriori query su questo. Salute, gehlnar |
|
||||
|
Grazie Vgersh, ho corretto il codice per la tua consulenza.
Sono sempre i risultati attesi, se l'uso di awk operazione vale a dire due volte memorizzando l'output prima operazione array e il nuovo file se i uso array operazione Sono sempre corretta produzione. Ma, come ho utilizzando awk è stato due volte, ho pensato di combinare esso. Abbiamo qualcosa di simile tubo in awk? Così sarà come prima ottenere questo file .. Codice:
PL0000101937~B~L~100000~DS1110~FMT PLKGHM000017~B~L~85000~KGHM~SHS PLKGHM000017~L~L~-35000~KGHM~SHS PLKGHM000017~L~L~-40000~KGHM~SHS PLPKO0000016~B~L~310000~PKO S.A.~SHS PLPKO0000016~L~L~-290000~PKO S.A.~SHS |
|
||||
|
vgersh,
Fase 1: iniziale di conversione di file di base per il calcolo Codice:
cat INPUTFILE |tr -d '\015'|sort -k1,2|nawk -F'|'
'BEGIN {OFS="~"}!/^PL/{next}$2=="L" && $3=="L"
{$4=0-$4};$6=="COM"?$6="SHS":$6="FMT"{print $0}'>TEMPFILE
Codice:
awk -F'~' '{OFS="~"}{arr[$1OFS$5OFS$6]+=$4} END
{for (i in arr) {print i,arr[i]}}'<TEMPFILE>EXPECTEDFILE
queste due passi in uno solo. Salute, gehlnar |
![]() |
| Segnalibri |
| Thread Tools | Cerca in questo Thread |
| Modalità di visualizzazione | Vota questo thread |
|
|