The UNIX and Linux Forums  


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
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

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 02-08-2007
berlin_germany berlin_germany is offline
Utente Registrato
  
 

Iscriviti Data: novembre 2006
Interventi: 17
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.
  #2 (permalink)  
Old 02-08-2007
Jim McNamara jim mcnamara is offline Forum Staff  
...@...
  
 

Iscriviti Data: febbraio 2004
Ubicazione: MN
Messaggi: 5.790

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 ...
  #3 (permalink)  
Old 02-09-2007
berlin_germany berlin_germany is offline
Utente Registrato
  
 

Iscriviti Data: novembre 2006
Interventi: 17
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?
  #4 (permalink)  
Old 02-09-2007
berlin_germany berlin_germany is offline
Utente Registrato
  
 

Iscriviti Data: novembre 2006
Interventi: 17
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
  #5 (permalink)  
Old 02-09-2007
berlin_germany berlin_germany is offline
Utente Registrato
  
 

Iscriviti Data: novembre 2006
Interventi: 17
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;
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 è 09:46 AM.


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