![]() |
|
|
google unix.com
|
|||||||
| Foros | Registro | Reglas de los Foros | Enlaces | Álbumes | Preguntas más frecuentes | Lista de miembros | Calendario | Búsqueda | Puestos de hoy | Marcar Foros Como Leídos |
| Programación de scripts de shell y Plantear preguntas sobre KSH, CSH, SH, BASH, PERL, PHP, SED, AWK y otros scripts de shell y lenguajes de script de shell aquí. |
Más UNIX y Linux Foro Temas usted puede encontrar útiles
|
||||
| Hilo | Hilo para principiantes | Foro | Respuestas | Último mensaje |
| agregar valores con un bucle | hcclnoodles | Programación de scripts de shell y | 1 | 05-27-2008 07:42 AM |
| sustituir la columna de valores. | charandevu | Programación de scripts de shell y | 6 | 04-02-2008 03:21 AM |
| cómo leer la columna de impresión y los valores en virtud de que la columna | gemini106 | Programación de scripts de shell y | 6 | 03-28-2008 07:05 AM |
| Cómo verificar los valores nulos en un archivo de la columna por columna si las columnas no son valores NULL | Mandab | Programación de scripts de shell y | 7 | 03-15-2008 09:57 AM |
| sustituir los valores de una columna con el primer valor en la columna | sumeet | UNIX para usuarios avanzados y expertos | 3 | 02-06-2007 01:13 PM |
![]() |
|
|
Linkback vínculo | Herramientas de hilo | Buscar en este Hilo | Tasa de Hilo | Modos de visualización |
|
|
|
||||
|
Ayuda en la adición de los valores positivos y negativos en una columna
Hola Gurús,
En mi archivo tengo una cantidad de campo desde la posición 74 a 87, que contiene los valores a partir de '+' y '-'. Quiero añadir todos los valores positivos en una varible llamada "crédito" y todos los valores negativos en la variable "débito". Lo sé, podemos utilizar grep para identificar los valores con los signos positivos y negativos. Pero, no sé, cómo añadirlos separado en 2 variables en un script. ¿Hay alguna manera de hacerlo que en la línea de comandos? Cualquier ayuda sería mucho appriciated. Gracias! En mi archivo Campo Cantidad ha justificado a la derecha como los valores, +1345778500000 -327800000 +642307000000 -4300000 +2308007 Estos valores mirar aquí justificado a la izquierda de la pantalla, pero están realmente justificados por la derecha en mi archivo. |
|
||||
|
Código:
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
intentar algo así .... .. desordenados justificación el derecho ... |
|
||||
|
Jim McNamara, gracias por la respuesta. Que funciona bien, cuando los valores se justificado a la izquierda. Pero, he justificado a la derecha los valores en el archivo. Por lo tanto, '+' o '-' puede empezar en cualquier posición de 74 a 87 bytes.
¿Cómo podemos usar 'longitud' función para el tratamiento de los valores como justificado a la izquierda, por lo que los principales espacios pueden ser ignorados? |
|
||||
|
Creo que, después de resolver el problema, donde no se preocupan por la posición de '+' y '-' signos en los valores. Puedo comprobar los valores> 0 y el resto, y de acuerdo con esa suma en 2 diferentes variables como a continuación:
awk '( valor \u003d substr ($ 0,74,14) if (valor> 0) (y) + \u003d valor else (valor + \u003d menos) ) FIN (imprimir más, menos) 'nombre de archivo | leer crédito débito |
|
||||
|
Tras funciona bien,
#! / bin / ksh credit_sum \u003d `awk '(valor \u003d substr ($ 0, 74, 14), si (valor> 0) (+ \u003d valor de crédito)) END (print crédito)' nombre de archivo» debit_sum \u003d `awk '(valor \u003d substr ($ 0, 74, 14), si (valor <0) (débito + \u003d valor)) END (print débito)' nombre de archivo» exit 0; |
![]() |
| Marcadores |
| Herramientas de hilo | Buscar en este Hilo |
| Modos de visualización | Vota a este hilo |
|
|