![]() |
|
|
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 |
| valori con l'aggiunta di un anello | hcclnoodles | Shell scripting e di programmazione | 1 | 05-27-2008 07:42 AM |
| sostituire la colonna di valori. | charandevu | Shell scripting e di programmazione | 6 | 04-02-2008 03:21 AM |
| come leggere la colonna e stampare i valori di forza di tale colonna | gemini106 | Shell scripting e di programmazione | 6 | 03-28-2008 07:05 AM |
| Come controllare i valori Null in una colonna per colonna file se le colonne non sono NULLs | Mandab | Shell scripting e di programmazione | 7 | 03-15-2008 09:57 AM |
| sostituzione di una colonna di valori con il primo valore nella colonna | sumeet | UNIX e avanzata per utenti esperti | 3 | 02-06-2007 01:13 PM |
![]() |
|
|
LinkBack | Thread Tools | Cerca in questo Thread | Rate Thread | Modalità di visualizzazione |
|
|
|
||||
|
Guida in aggiunta valori positivi e negativi in una colonna
Ciao Guru,
Nel mio file ho un importo campo da posizione 74 a 87, che contiene i valori che iniziano con '+' e '-'. Voglio aggiungere tutti i valori positivi in un varible chiamato "CREDITO" e tutti i valori negativi in una variabile "DARE". Lo so, siamo in grado di utilizzare grep per identificare i valori con segno positivo e negativo. Ma, non so, come aggiungere in 2 distinte variabili in uno script. Esiste un modo per farlo sulla riga di comando? Qualsiasi aiuto sarebbe molto appriciated. Grazie! Nel mio file Importo campo ha diritto giustificato valori simili, +1345778500000 -327800000 +642307000000 -4300000 +2308007 Questi valori guardare qui giustificato a sinistra sullo schermo, ma sono in realtà a destra nel mio file. |
|
||||
|
Codice:
awk ' {
value=substr($0,74,14)
while (substr(value,1,1) == " " ) {value=substr(value,2)}
if(value>0) { plus+=value}
else {minus+=value}
}
END { print plus, minus} ' filename | read credit debit
provare qualcosa di simile .... .. messo la giusta motivazione ... |
|
||||
|
Jim McNamara Grazie per la risposta. E funziona bene, quando i valori sono giustificati a sinistra. Ma, ho diritto giustificato valori nel file. Quindi, '+' O '-' possibile iniziare in qualsiasi posizione da 74 a 87 byte.
Come possiamo utilizzare 'lunghezza' la funzione di trattare i valori come giustificato a sinistra, in modo che il leader degli spazi può essere ignorato? |
|
||||
|
Credo che, a seguito di risolvere il problema, se non mi preoccupo di posizione di '+' e '-' segni dei valori. Sono in grado di controllare solo i valori> 0 e il resto, e in base a tale somma in 2 diverse variabili come indicato di seguito:
awk '( valore \u003d substr ($ 0,74,14) if (value> 0) (e + \u003d value) else (meno + \u003d value) ) END (print più, meno) 'file | leggi di credito di debito |
|
||||
|
In seguito lavora bene,
#! / bin / ksh credit_sum \u003d `awk '(value \u003d substr ($ 0, 74, 14); if (value> 0) (+ \u003d valore di credito)) END (print credito)' file` debit_sum \u003d `awk '(value \u003d substr ($ 0, 74, 14); if (valore <0) (addebito + \u003d valore)) END (print addebito)' file` exit 0; |
![]() |
| Segnalibri |
| Thread Tools | Cerca in questo Thread |
| Modalità di visualizzazione | Vota questo thread |
|
|